Python字符串json.loads错误

Ash*_*ish 0 python string json

有什么不同之处:

  1. s1 = '["a"]'

  2. s2 = "['a']"

当我这样做时json.loads,我得到以下错误s2但是s1很好:

>>> s1='["a2"]'
>>> s2="['a2']"
>>> json.loads(s1)
[u'a2']
>>> json.loads(s2)
 raise ValueError("No JSON object could be decoded")
 ValueError: No JSON object could be decoded
Run Code Online (Sandbox Code Playgroud)

Tad*_*eck 7

问题是JSON使用双引号(")来引用值,而不是单引号(').

这意味着由于无效的JSON而抛出异常:

  • 这是无效的JSON: ['a']
  • 这是有效的JSON: ["a"]

下面也是正确的例子,与你的不同:

>>> import json
>>> s1 = "['a']"
>>> s2 = '["a"]'
>>> json.loads(s1)
... some traceback removed ...
ValueError: No JSON object could be decoded
>>> json.loads(s2)
[u'a']
Run Code Online (Sandbox Code Playgroud)

编辑:我更新了问题,正确的输出OP必须看到而不是他/她发布的内容(json.loads('["a2"]')没有抛出错误,json.loads("['a2']")是).