我想解析类似 JSON 的字符串。它们与普通 JSON 的唯一区别是数组中存在连续逗号。当有两个这样的逗号时,它隐含地意味着应该在中间插入 null
。示例:
JSON-like: ["foo",,,"bar",[1,,3,4]]
Javascript: ["foo",null,null,"bar",[1,null,3,4]]
Decoded (Python): ["foo", None, None, "bar", [1, None, 3, 4]]
native json.JSONDecoder
类不允许我更改数组解析的行为。我只能修改对象(字典)、整数、 float 、字符串的解析器(通过为 JSONDecoder()
提供 kwargs 函数,请参阅 the doc)。
那么,这是否意味着我必须从头开始编写 JSON 解析器? json
的Python代码已经有了,但是比较乱。我宁愿使用它的内部结构而不是复制它的代码!
最佳答案
由于您尝试解析的不是 JSON 本身,而是一种非常类似于 JSON 的不同语言,因此您可能需要自己的解析器。
幸运的是,这并不像听起来那么难。您可以使用像 pyparsing 这样的 Python 解析器生成器.可以使用相当简单的上下文无关语法(我找到一个 here )完全指定 JSON,因此您应该能够修改它以满足您的需要。
关于javascript - Python:解析类似 JSON 的 Javascript 数据结构(带连续逗号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10057375/