Python:解析类似JSON的Javascript数据结构(带连续逗号)

zop*_*eux 2 javascript python parsing json

我想解析类似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]]
Run Code Online (Sandbox Code Playgroud)

本机json.JSONDecoder类不允许我更改数组解析的行为.我只能修改对象(dicts),整数,浮点数,字符串的解析器(通过给kwargs函数JSONDecoder(),请参阅doc).

那么,这是否意味着我必须从头开始编写JSON解析器?可以使用Python代码,json但它非常混乱.我宁愿使用它的内部而不是复制它的代码!

Tay*_*mon 5

因为您尝试解析的不是JSON 本身,而是与JSON非常相似的不同语言,您可能需要自己的解析器.

幸运的是,这并不像听起来那么难.您可以使用Python解析器生成器,如pyparsing.可以使用相当简单的无上下文语法完全指定JSON(我在这里找到了一个),因此您应该能够修改它以满足您的需要.