适用于Python的Lenient JSON Parser

wfveoks0  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(101)

有没有一个“宽松”的JSON解析器用于Python?
我一直收到(手写的)JSON文件,比如:

/* This JSON file is created by someone who does not know JSON
   And not competent enough to search about "JSON Validators" */

{

  /* Hey look!
     A honkin' block comment here!
     Yeehaw */

  "key1": "value1",  // Hey look there's a standard-breaking comment here!
  "key3": .65,       // I'm too lazy to type "0"
  "key4": -.75,      // That "other" .Net program works anyways...
  "key5": [ 1 /* One */, 2 /* Two */, 3 /* Three */, 4 /* Four */],
  "key2": "value2",  // Whoopsie, forgot to delete the comma here...
}

字符串
实际上使用了这些格式异常的JSON文件的程序 * 不知何故 * 并没有吐出这些错误。顺便说一下,这个程序是用C#写的。
我正在用Python编写一些脚本,这些脚本将基于这些JSON文件执行操作,但它会在这些错误上(正确地)崩溃。
我可以手动编辑这些.json文件,使其符合标准...但是它们有很多,因此它太费力了--更不用说我还得不断地编辑新的JSON文件。
所以,回到我的问题,有没有一个宽松的JSON解析器可以在不死亡的情况下消耗那些格式错误的JSON文件?

注意:This question只关注最后一个对象的尾随逗号;它不处理块注解和/或内联注解。
**编辑:**什么...我刚刚收到一个JSON文件,其中创建者决定删除0 < numbers < 1的前导零... -_-

我发现了一个文件里面有这条评论...:fuming_red:
我将更新上面的示例以反映我的额外“发现”...

ncecgwcz

ncecgwcz1#

好吧,所以@warl0ck的评论让我觉得,我可能更好地编写我自己的**“JSON预处理器”**来完成繁重的清理。
所以,here it is in my BitBucket Snippet,完成一个简单的单元测试。
我已经用我的人工生成的格式错误的JSON文件语料库测试了它,到目前为止,它似乎工作得很好……
如果代码有问题就告诉我。
但目前我很满足。

**编辑:**因为BitBucket删除了我所有的代码片段,我重新上传代码到GitHub:https://gist.github.com/pepoluan/361724bfa5cce9d863dadc6e2bdcb8c9

相关问题