簡體   English   中英

Python:解析大型json文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM