阅读相当大的JSON文件。

21 浏览
0 Comments

阅读相当大的JSON文件。

我有一些大型的json编码文件。最小的文件大小为300MB,其余的文件大小在2GB到10GB+之间。

当我试图在Python中加载这些文件时,似乎总是会出现内存不足的问题。

我尝试使用以下代码测试性能:

from datetime import datetime
import json
print datetime.now()
f = open('file.json', 'r')
json.load(f)
f.close()
print datetime.now()

不出所料,这会导致MemoryError。看起来json.load()调用了json.loads(f.read()),它试图首先将整个文件转储到内存中,这显然是行不通的。

我应该如何干净地解决这个问题?


我知道这是老问题,但我认为这不是重复的。虽然答案是一样的,但问题是不同的。在“重复”的问题中,问题是如何高效地读取大文件,而这个问题涉及的文件根本无法放入内存中。效率并不是必需的。

0