Python JSON双引号错误

时间:2019-05-25 20:10:30

标签: python json web-scraping

使用以下代码时,我遇到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。感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

行号给出了很好的提示

您想要的:

 "id": 799324
}

(请注意最后一个元素后没有逗号)

json不是python ast.literal_eval,如果最后一个元素上有逗号,它将失败,因为它在消息状态时期望另一个属性(Expecting property name enclosed in double quotes解释说,尽管消息可能会更好,但这个错误很常见)

如果您有这样的数据,则可以在其上使用ast.literal_eval,它将无需修改即可工作(除非有falsenull json布尔值/空指针)< / p>