从磁盘加载的Python字典在内存中占用太多空间

use*_*542 4 python file-io pickle

我有一个腌制在磁盘上的字典,大小约为780 Megs(在磁盘上).但是,当我将该字典加载到内存中时,其大小意外膨胀到大约6千兆字节.无论如何都要保持内存中实际文件大小的大小,(我的意思是如果它在内存中需要大约1演出,但是6演出是一种奇怪的行为).pickle模块有问题,还是应该以其他格式保存字典?

这是我加载文件的方式:

import pickle

with open('py_dict.pickle', 'rb') as file:
    py_dict = pickle.load(file)
Run Code Online (Sandbox Code Playgroud)

任何想法,帮助,将不胜感激.

gon*_*opp 6

如果您pickle只是用于在字典中存储大值,或者使用非常多的键,则应考虑使用shelve.

import shelve
s=shelve.open('shelve.bin')
s['a']='value'
Run Code Online (Sandbox Code Playgroud)

这仅在需要时加载每个键/值,其余的保留在磁盘上