在Python中讀取相當大的json文件所以我有一些相當大的json編碼文件。最小的是300MB,但這是迄今為止最小的。其余的是多GB,大約2GB到10GB +。所以當我嘗試使用Python加載文件時,我似乎耗盡了內存。我目前正在進行一些測試,看看處理這些東西需要多長時間才能看到從這里開始。這是我用來測試的代碼:from datetime import datetimeimport jsonprint datetime.now()f = open('file.json', 'r')json.load(f)f.close()print datetime.now()毫不奇怪,Python給了我一個MemoryError。似乎json.load()調用json.loads(f.read()),它試圖首先將整個文件轉儲到內存中,這顯然不會起作用。我能干什么方式解決這個問題嗎?我知道這是舊的,但我不認為這是重復的。答案是一樣的,但問題是不同的。在“重復”中,問題是如何有效地讀取大文件,而這個問題處理甚至根本不適合內存的文件。效率不是必需的。
2 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
如果JSON文件是一個巨大的列表(例如),那么將其解析為Python在沒有一次完成所有操作的情況下就沒有多大意義。我想你最好的辦法是找到一個像SAX一樣處理JSON的模塊,并為你提供啟動數組和東西的事件,而不是給你對象。不幸的是,標準庫中不存在這種情況。
添加回答
舉報
0/150
提交
取消