为什么simplejson认为这个字符串是无效的json?
Why does simplejson think this string is invalid json?
我正在尝试将一个简单的 JSON 字符串 {\n 100: {"a": "b"}\n}
转换为 python 对象,但它给了我这个错误:Expecting property name enclosed in double quotes
为什么坚持属性的名称是字符串?
>>> import simplejson
>>> my_json = simplejson.loads('{\n 100: {"a": "b"}\n}')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 5 (char 6)
此值无效{100: {"a": "b"}}
,您需要{"100": {"a": "b"}}
。
存在 100
的 属性 名称需要用双引号引起来,因此 "100"
.
Why is it insisting that the name of the attribute be a string?
JSON就是这样。
您可能习惯于用 Javascript 或其他语言编写 {100: {"a": "b"}}
(无需双引号 属性 名称),但您仍然会得到如果您尝试将其解析为 Javascript 中的 JSON,则会出现解析错误,例如:
JSON.parse('{100: {"a": "b"}}')
SyntaxError: JSON.parse: expected property name or '}'
at line 1 column 2 of the JSON data
我正在尝试将一个简单的 JSON 字符串 {\n 100: {"a": "b"}\n}
转换为 python 对象,但它给了我这个错误:Expecting property name enclosed in double quotes
为什么坚持属性的名称是字符串?
>>> import simplejson
>>> my_json = simplejson.loads('{\n 100: {"a": "b"}\n}')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/Users/myuser/myenv/lib/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 5 (char 6)
此值无效{100: {"a": "b"}}
,您需要{"100": {"a": "b"}}
。
存在 100
的 属性 名称需要用双引号引起来,因此 "100"
.
Why is it insisting that the name of the attribute be a string?
JSON就是这样。
您可能习惯于用 Javascript 或其他语言编写 {100: {"a": "b"}}
(无需双引号 属性 名称),但您仍然会得到如果您尝试将其解析为 Javascript 中的 JSON,则会出现解析错误,例如:
JSON.parse('{100: {"a": "b"}}')
SyntaxError: JSON.parse: expected property name or '}'
at line 1 column 2 of the JSON data