Python:解析大型json文件

时间:2015-01-21 19:20:03

标签: python json

我有一个大的json文件。它的日志数据和我已将其压缩为bz2格式(myfile.json.bz2)。 bz2文件的大小是90MB。我搜索找到一个很好的解决方案或博客文章,解释有效解析压缩bz2 json文件,但无法找到任何。

由于文件太大而做的事情是不可能的。

with open('data.json') as data_file:    
    data = json.load(data_file)

最好的方法是什么?

经过一番挖掘后,我发现有一个python包来读取bz2

input_file = bz2.BZ2File(filename, 'r')

2 个答案:

答案 0 :(得分:1)

在没有任何其他建议或现有代码的情况下,我建议打开一个流并手动解析大括号和括号(分别为{[),直到您拥有完整的对象{{1}并在其上运行反序列化。这将允许您在利用现有JSON库的同时对JSON进行分块。

这不是我通常会推荐的解决方案,但如果现有的库不符合您的需求,它是我能想到的最快,最可靠的解决方案。

答案 1 :(得分:0)

如果有人正在寻找一种方法来解析bz2中压缩的wikidata json转储,则下面是一段代码:

import bz2
import json

f = bz2.BZ2File("latest-all.json.bz2", "r")
next(f)  # skip the first line
for line in f:
    print(json.loads(line[:-2]))
相关问题