Python的宽容JSON解析器

2024-04-20 03:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

对于Python有一个“宽松”的JSON解析器吗?在

我一直在获取(手写)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。。。-_-在

我发现了一个嵌入评论的文件。。。:烟红色:

我将更新上面的示例以反映我的附加“发现”。。。在


Tags: 文件tolt程序脚本json解析器编辑
1条回答
网友
1楼 · 发布于 2024-04-20 03:38:41

好吧,所以@warl0ck的评论让我觉得我最好还是编写自己的“JSON预处理器”来完成繁重的清理工作。在

所以,here it is in my BitBucket Snippet,完成一个简单的单元测试。在

我用人类生成的格式错误的JSON文件集对它进行了测试,到目前为止,似乎运行得很好。。。在

如果代码中有错误请告诉我。在

但现在,我很满足。在

相关问题 更多 >