您好,欢迎来到步悠美食。
搜索
您的当前位置:首页python的json解析函数不支持单引号字符串

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

来源:步悠美食


使用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/lib/python2.6/json/__init__.py", line 307, in loads
 return _default_decoder.decode(s)
 File "/usr/lib/python2.6/json/decoder.py", line 319, in decode
 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
 File "/usr/lib/python2.6/json/decoder.py", line 336, in raw_decode
 obj, end = self._scanner.iterscan(s, **kw).next()
 File "/usr/lib/python2.6/json/scanner.py", line 55, in iterscan
 rval, next_pos = action(m, context)
 File "/usr/lib/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 = '{"aa":"asdf","dd":"dfads"}
 File "<stdin>", line 1
 a = '{"aa":"asdf","dd":"dfads"}
 ^
SyntaxError: EOL while scanning string literal
>>> a = '{"aa":"asdf","dd":"dfads"}'
>>> b = json.loads(a)
>>> b
>>> <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">{u'aa': u'asdf', u'dd': u'dfads'}</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 1.5; background-color: white;">
</span>

Copyright © 2019- buun.com.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务