为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英3389331 2021-06-28 15:20:39
这段代码:import jsons = '{ "key1": "value1", "key2": "value2", }'json.loads(s)在 Python 2 中产生此错误:ValueError:期望属性名称:第 1 行第 16 列(字符 15)Python 3 中的类似结果:json.decoder.JSONDecodeError:期望用双引号括起来的属性名称:第 1 行第 16 列(字符 15)如果我删除尾随逗号(在 之后"value2"),则不会出现错误。但是我的代码会处理许多不同的 JSON,所以我无法手动完成。是否可以将解析器设置为忽略这样的最后一个逗号?
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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


import yaml

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

yaml.load(s)


查看完整回答
反对 回复 2021-07-06
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

JSON 规范不允许尾随逗号。解析器正在抛出,因为它遇到无效的语法标记。

您可能有兴趣为这些文件使用不同的解析器,例如。为JSON5 规范构建的解析器,它允许这种语法。


查看完整回答
反对 回复 2021-07-06
  • 3 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信