我在磁盘上腌制了一个字典,大小约为780 Megs(在磁盘上)。但是,当我将该字典加载到内存中时,其大小意外膨胀到大约6千兆字节。无论如何还要保持内存中实际文件大小的大小,(我的意思是如果它在内存中需要大约1演出,但是6演出是一种奇怪的行为)。 pickle模块有问题,还是应该以其他格式保存字典?
以下是我加载文件的方式:
import pickle
with open('py_dict.pickle', 'rb') as file:
py_dict = pickle.load(file)
任何想法,帮助,将不胜感激。
答案 0 :(得分:6)
如果您仅使用pickle
将大值存储在字典中,或者使用大量密钥,则应考虑使用shelve
代替。
import shelve
s=shelve.open('shelve.bin')
s['a']='value'
仅在需要时加载每个键/值,其余的保留在磁盘上
答案 1 :(得分:1)
使用SQL将所有数据存储到数据库中,并使用有效的查询来访问它。