当我使用以下代码时遇到 JSON 语法问题:https://github.com/clarkbk/streeteasy-analysis
在 Buildings.json 中使用此 JSON
{
"buildings": [
{
"name": "Henry Hall",
"addr": "https://streeteasy.com/nyc/property_activity/past_transactions_component/799324?all_activity=true&show_rentals=true&style=xls",
"id": 799324,
}
]
}
我收到以下错误:
2019-05-25 16:04:26,641 - INFO - Starting...
Traceback (most recent call last):
File "run.py", line 27, in <module>
data = json.load(f)
File "/usr/lib/python3.6/json/__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 9 column 5 (char 220)
root@LAPTOP-4QGC19OR:/home/HN/streeteasy-analysis#
我已经研究了几个小时来解决这个问题,但无法找到解决办法。一般来说,我对 JSON 不太熟悉,但我不知道我在哪里没有正确地进行双重引用。感谢对此的任何帮助。
最佳答案
行号给出了很好的提示
你想要:
"id": 799324
}
(注意最后一个元素后面没有逗号)
json 不是 python ast.literal_eval
,如果最后一个元素上有逗号,则会失败,因为它需要另一个属性作为消息状态(期望属性名称包含在双引号中
解释说,尽管该消息可以更好,因为此错误很常见)
如果你有这样的数据,你可以使用 ast.literal_eval
来代替,它无需修改即可工作(除非有 false
或 null
json bool 值/空指针)
关于Python JSON 双引号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308324/