>> import json >>> b = j ..."/> >> import json >>> b = j ...">

python的json解析函数不支持单引号字符串

巴扎黑
发布: 2016-12-07 09:38:16
原创
1417 人浏览过

使用python标准库的json解析函数json.loads是不能使用单引号引用的json字符串,示例如下:

改用双引号,或者在loads之前先调用json.dumps(a)也可以。

>>> a = "{'aa':'dd','dd':'df'}"
>>> import json
>>> b = json.loads(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
    obj, end = self._scanner.iterscan(s, **kw).next()
  File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
    rval, next_pos = action(m, context)
  File "/usr/lib64/python2.6/json/decoder.py", line 171, in JSONObject
    raise ValueError(errmsg("Expecting property name", s, end))
ValueError: Expecting property name: line 1 column 1 (char 1)
>>> a = &#39;{"aa":"asdf","dd":"dfads"}
  File "<stdin>", line 1
    a = &#39;{"aa":"asdf","dd":"dfads"}
                                  ^
SyntaxError: EOL while scanning string literal
>>> a = &#39;{"aa":"asdf","dd":"dfads"}&#39;
>>> b = json.loads(a)
>>> b
>>> <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">{u&#39;aa&#39;: u&#39;asdf&#39;, u&#39;dd&#39;: u&#39;dfads&#39;}</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">
</span>
登录后复制


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!