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

这段代码:


import json

s = '{ "key1": "value1", "key2": "value2", }'

json.loads(s)

在 Python 2 中产生此错误:


ValueError:期望属性名称:第 1 行第 16 列(字符 15)


Python 3 中的类似结果:


json.decoder.JSONDecodeError:期望用双引号括起来的属性名称:第 1 行第 16 列(字符 15)


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


慕桂英3389331
浏览 250回答 3
3回答

阿波罗的战车

另一种选择是将其解析为 YAML;YAML 接受有效的 JSON,但也接受各种变体。import yamls = '{ "key1": "value1", "key2": "value2", }'yaml.load(s)

慕姐4208626

JSON 规范不允许尾随逗号。解析器正在抛出,因为它遇到无效的语法标记。您可能有兴趣为这些文件使用不同的解析器,例如。为JSON5 规范构建的解析器,它允许这种语法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python