当前位置: 首页 > 面试题库 >

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

晋西岭
2023-03-14
问题内容

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

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

很好,但是这个

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

是无效的语法。

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


问题答案:

您可以使用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)


 类似资料:
  • 问题内容: 我有一个像这样的字符串: 上面的字符串应分为: 问题答案: 我认为最简单的解决方案是处理输入字符串char-by-char: 例: 作为免费赠品,此解决方案还根据需要计算嵌套括号: 它还检查括号是否平衡(每个开放的括号都有相应的结束符)。

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文

  • 问题内容: 数组初始化列表中使用的逗号分隔符可以以C结束列表,这在 Kernighan&Ritchie编写的C编程语言第二版中 有所提及。 例如 当列表很长时,这很方便,并且不想在添加项目时更改/检查上一行 但是,在Java中,我可以观察到两种不同的行为: 在Eclipse中,当某些版本的maven编译器插件抱怨并引发编译错误时,结尾被接受。 但是,在 Flanagan的Java 书中我没有提到任

  • 问题内容: 我从数据库中得到了String,它有多个逗号()。我想删除 最后一个逗号, 但实际上找不到一种简单的方法。 我有的: 我想要的是: 问题答案: 要删除紧随字符串结尾的部分,您可以执行以下操作: 相对于/ solution,它需要对此类情况进行特殊处理,这可以优雅地处理空列表(空字符串)。 示例代码: 注意: 由于存在有关零件的一些注释和建议的编辑:表达式应与要删除的尾部零件匹配。 如果

  • 问题内容: 我有一些输入如下所示: 逗号分隔的值可以是任何顺序。我想用逗号分割字符串;但是,在双引号内包含某些内容的情况下,我需要它既忽略逗号又去除引号(如果可能)。因此,基本上,输出将是以下字符串列表: 我已经看过其他一些答案,并且我认为正则表达式是最好的,但是我想出这些答案很糟糕。 问题答案: 拉瑟是对的。这是一个逗号分隔的值文件,因此您应该使用module。一个简单的例子:

  • 输入字符串用逗号分隔。但它可能包含双引号内的逗号,需要忽略。下面是示例字符串 下面是我用来拆分逗号的代码,但如果逗号是双引号中字符串的一部分,它就会失败。 所以任何解决这个问题的想法。