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

标签 javascript python json parsing

我想解析类似 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/

相关文章:

java - 序列化 Jackson JSON 树模型时排除 NullNode

javascript - 接收 JSON 格式的图像数据并将其注入(inject) DOM

javascript - 隐藏 .children 很容易 - 属于 <dt> 的 <dd> 怎么样

javascript - Foreach,等待每次迭代直到收到响应(使js同步)

python - 如何在 Windows 7 中运行 python

android - 我收到此错误 : java. lang.NullPointerException:lock ==null

javascript - 如何无限循环 jQuery 画廊

python - 有一个好的,免费的小型Python网络主机吗?

python - 安装pbr时出错

javascript - Laravel - 为什么json响应有时返回一个数组有时返回一个对象