Python无法使用额外的结尾逗号来解析JSON
作者:互联网
这段代码:
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,因此无法手动进行.是否可以将解析器设置为忽略这些最后的逗号?
解决方法:
JSON规范不允许尾随逗号.解析器抛出异常,因为它遇到无效的语法标记.
您可能有兴趣对这些文件使用其他解析器,例如.为JSON5 spec构建的解析器,它允许这种语法.
标签:python,json,parsing,runtime-error 来源: https://codeday.me/bug/20191011/1896115.html