我有一个很大的json文件,我很难在python中阅读和使用它。看起来我可以运行json.loads()
,但是过了一段时间就崩溃了。
有两个问题基本上是同一件事:
Reading rather large JSON files
Is there a memory efficient and fast way to load big JSON files?
但是这些问题是2010年和2012年的,所以我想知道是否有一种更新/更好/更快的方法来做事情?
我的文件格式是:
import json
f = open('../Data/response.json')
data = json.load(f)
dict_keys(['item', 'version'])
# Path to data : data['item']
谢谢
1条答案
按热度按时间zdwk9cvp1#
Python的
json
函数的问题在于它会将整个文件加载到内存中。这意味着它的速度非常快,但如果文件很大,则需要更多的内存(RAM)。如果你有一个大的JSON文件,这可能是一个问题。解决方案是一次读取每个对象。一种值得探索的特殊文件类型(或者至少是关于它的想法)是JSONL。每行表示一个单独的JSON对象。使用这种格式,您可以将一行读入内存,对其执行某些操作,然后继续下一行。每一次,你都要把这个对象存储到内存中,就像整个文件内容一样。
另一个解决方案是(我知道,这是我自己的喇叭一点),它检查出https://pypi.org/project/json-lineage/作为一个可能的解决方案。
简而言之,它面向支持较大的文件,您希望一次将一个对象加载到内存中并一次处理一个文件。
这里有一个使用指南,可以为你做的伎俩: