这段代码:
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/