Python JSON 双引号错误

标签 python json web-scraping

当我使用以下代码时遇到 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 来代替,它无需修改即可工作(除非有 falsenull json bool 值/空指针)

关于Python JSON 双引号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308324/

相关文章:

Python ReportLab——表格对于页面来说太宽

Javascript - 计算 JSON 的所有嵌套对象

Python 和 Mechanize : How to scrape through pages in a row?

javascript - 干刮: "No route found for....."

python - 使用 fit_generator 的训练模型不显示 val_loss 和 val_acc 并且在第一个时期中断

python - 你能像在 Pytorch 中那样将变量传递给 Python 中的数据成员吗?

arrays - Laravel Eloquent - 使用 JSON 对象数组

javascript - JSON 格式问题?

python - 使用 Beautifulsoup Python 从 URL 抓取数据时获取编码文本

python - 在 python 中为多个变量设置 nosuchelementexception 的默认值