[英]Python: Parse large json file
我有一個大的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')
在沒有任何其他建議或現有代碼的情況下,我建議打開一個流並手動解析大括號和括號( {
和[
分別]直到你有一個完整的對象{ ... }
並對其進行反序列化。 這將允許您在利用現有JSON庫的同時對JSON進行分塊。
這不是我通常會推薦的解決方案,但如果現有庫不符合您的需求,它是我能想到的最快,最可靠的解決方案。
如果有人正在尋找一種方法來解析在bz2中壓縮的wikidata json dump,這里有一段代碼:
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]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.