Python 无法解析带有额外尾随逗号的 JSON

标签 python json parsing runtime-error

这段代码:

import json
s = '{ "key1": "value1", "key2": "value2", }'
json.loads(s)

在 Python 2 中产生此错误:

ValueError: Expecting property name: line 1 column 16 (char 15)



Python 3 中的类似结果:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 16 (char 15)



如果我删除该尾随逗号(在 "value2" 之后),则不会出现错误。但是我的代码会处理许多不同的 JSON,所以我无法手动完成。是否可以将解析器设置为忽略这样的最后一个逗号?

最佳答案

另一种选择是将其解析为 YAML; YAML 接受有效的 JSON,但也接受各种变体。

import yaml
s = '{ "key1": "value1", "key2": "value2", }'
yaml.load(s)

关于Python 无法解析带有额外尾随逗号的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636846/

相关文章:

python - Python线程,排队,异步……这是什么意思?

javascript - JSON.解析: unexpected end of data (javascript)

python - 使用 Python 从电子邮件正文中提取 URL?

python - 尝试使用 Matplotlib 安装 OpenCV

Python编码错误? Unicode解码错误: 'ascii' codec can't decode byte ordinal not in range(128)

json - 如何在elasticsearch中删除多个文档?

c# - 如何在Javascript中处理ObjectId,无法解析它

javascript - 如何使用javascript解析pdf文件的本地副本并搜索关键字出现?

python - 在渲染模板中将变量从 python (flask) 传递到 HTML?

python - 如何更改单个图例标签大小的大小?