我有一个包含 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/