我有一个json文件,如下所示:
{
"author":"John",
"desc": "If it is important to decode all valid JSON correctly \
and speed isn't as important, you can use the built-in json module, \
orsimplejson. They are basically the same but sometimes simplej \
further along than the version of it that is included with \
distribution."
//"birthday": "nothing" //I comment this line
}
此文件由其他程序自动创建。如何用Python解析它?
我没有亲自使用过它,但是jsoncommentpython包支持解析带有注释的JSON文件。
使用它代替JSON解析器,如下所示:
我无法想象由其他程序自动创建的json文件会包含注释。因为json spec根本不定义注释,也就是by design,所以任何json库都不会输出带有注释的json文件。
这些评论通常是后来由人添加的。在这种情况下没有例外。这位专栏作家在他的文章中提到:
//"birthday": "nothing" //I comment this line
。所以真正的问题应该是,如何正确地注释json文件中的某些内容,同时保持其与spec的兼容性,从而保持与其他json库的兼容性?
答案是,将字段重命名为另一个名称。示例:
可以更改为:
这在大多数情况下都会很好地工作,因为使用者很可能会忽略意外字段(但并不总是如此,这取决于json文件使用者的实现)。所以YMMV.)
更新:显然有些读者不满意,因为这个答案没有给出他们期望的“解决方案”。实际上,我确实给出了一个有效的解决方案,通过隐式链接到JSON designer's quote:
所以,是的,继续使用JSMin。请记住,当您走向“使用JSON中的注释”时,这是一个概念上未知的领域。不保证您选择的任何工具都能处理:inline
[1,2,3,/* a comment */ 10]
、Python样式[1, 2, 3] # a comment
(这是Python中的注释,但不是Javascript中的注释)、INI样式[1, 2, 3] ; a comment
,…,您就得到了这个想法。我仍然建议首先不要在JSON中添加不符合的注释。
jsoncomment很好,但不支持内联注释。
签出jstyleson,它支持
示例
安装
pip install jstyleson
用法
相关问题 更多 >
编程相关推荐