使用以下代码时,我遇到JSON语法问题:https://github.com/clarkbk/streeteasy-analysis
在building.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不太熟悉,但是我不知道我在哪里不正确进行两次qouting。感谢任何帮助。
答案 0 :(得分:2)
行号给出了很好的提示
您想要的:
"id": 799324
}
(请注意最后一个元素后没有逗号)
json不是python ast.literal_eval
,如果最后一个元素上有逗号,它将失败,因为它在消息状态时期望另一个属性(Expecting property name enclosed in double quotes
解释说,尽管消息可能会更好,但这个错误很常见)
如果您有这样的数据,则可以在其上使用ast.literal_eval
,它将无需修改即可工作(除非有false
或null
json布尔值/空指针)< / p>