python - 如何处理大量的 JSON 字典?

标签 python json

我有一个包含 JSON 字典流的文件,如下所示:

{"menu": "a"}{"c": []}{"d": [3, 2]}{"e": "}"}

它还包括嵌套字典,看起来我不能依赖换行符作为分隔符。我需要一个可以像这样使用的解析器:

for d in getobjects(f):
  handle_dict(d)

要点是,如果迭代只发生在根级别,那将是完美的。是否有一个 Python 解析器可以处理所有 JSON 的怪癖?我对适用于不适合 RAM 的文件的解决方案很感兴趣。

最佳答案

我认为JSONDecoder.raw_decode可能是你要找的。根据换行符等,您可能需要进行一些字符串格式化才能以完美的格式获得它,但是通过一些工作,您可能能够得到一些工作。请参阅此示例。

import json
jstring = '{"menu": "a"}{"c": []}{"d": [3, 2]}{"e": "}"}'
substr = jstring
decoder = json.JSONDecoder()

while len(substr) > 0:
    data,index = decoder.raw_decode(substr)
    print data
    substr = substr[index:]

给出输出:

{u'menu': u'a'}
{u'c': []}
{u'd': [3, 2]}
{u'e': u'}'}

关于python - 如何处理大量的 JSON 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30809110/

相关文章:

python - Pandas 合并两列的一部分

java - android 9 中的错误 protected doInBackground

javascript - PHP:响应 AJAX post 请求

javascript - 在 Angular js 中嵌入来自 json 响应的 Youtube 视频 url 和 Vimeo 视频 url 时的问题

迭代存储在文本文件中的 json 对象集合的 pythonic 方式

python - 在代码中放置模运算

python - 如何在类中定义带值的变量以及如何在其他类中使用

python - Python 中支持重复和排序的最有效的对值数据结构?

Python: 'int' 对象在 map.Pool 中不可迭代

c++ nlohmann json - 如何迭代/查找嵌套对象