一尘不染

json.loads可以忽略结尾的逗号吗?

json

如这个问题中所述,不允许在json中使用任何尾随逗号。例如这个

{
    "key1": "value1",
    "key2": "value2"
}

很好,但是这个

{
    "key1": "value1",
    "key2": "value2",
}

是无效的语法。

出于另一个StackOverflow问题中提到的原因,在Python代码中使用尾随逗号是合法的(也许是鼓励的?)。我同时使用Python和JSON,因此希望能够在两种类型的文件之间保持一致。有没有办法json.loads忽略尾随逗号?


阅读 370

收藏
2020-07-27

共1个答案

一尘不染

您可以使用jsoncomment包装python的json解析器

JSON Comment允许使用以下方式解析JSON文件或字符串:

  • 单行和多行注释
  • 多行数据字符串
  • 最后一项之后的对象和数组中的逗号结尾

用法示例:

import json
from jsoncomment import JsonComment

with open(filename) as data_file:    
    parser = JsonComment(json)
    data = parser.load(data_file)
2020-07-27