解析“JSON”含有尾随逗号(Parsing “JSON” containing trailing

2019-09-18 03:45发布

是否有任何Python的JSON解析器将尾随逗号应对?

(我消耗来自外部源的“JSON”,并有在它的控制。)

Answer 1:

抢PyYAML。 JSON是YAML的一个子集,所以YAML解析器解析应该最JSON。 YAML的语法允许在序列尾随逗号。



Answer 2:

JSON-CFG似乎支持JSON的扩展,允许它。 它还允许的意见和不带引号的键。

>>> import jsoncfg
>>> jsoncfg.loads('{"key1": "{my tricky value,}", }')
OrderedDict([('key1', '{my tricky value,}')])

额外的选项(注释和不带引号的键)可以用[禁用JSONParserParams ]类:

jsoncfg.loads('{"key1": "{my tricky value,}" /*nope*/}', jsoncfg.JSONParserParams(allow_comments=False, allow_unquoted_keys=False))

这都没有所有关于允许整个YAML语法的关注。 此外,与基于正则表达式-预处理和过于简单的模块,如jsoncomment,它实现一个完全成熟标记生成器和解析器 (利于一个非正则语言),以避免嵌套问题(逗号步道时,像]} 在字符串内 ) 。

无论这个库仍维持与否是一个悬而未决的问题。 它肯定可以使用更多的文档。



文章来源: Parsing “JSON” containing trailing commas