Python:存储大数据结构

Bla*_*nky 3 python pickle data-structures

我目前正在用 python 做一个项目,该项目使用相对较大的字典(大约 800 MB)。我试图通过使用 pickle 来存储这些字典之一,但得到了一个 MemoryError。

在python中保存此类文件的正确方法是什么?我应该使用数据库吗?

Bor*_*lik 7

Python 标准的shelve模块为持久对象提供类似 dict 的接口。它适用于许多数据库后端,不受 RAM 限制。shelve与直接使用数据库相比,使用数据库的优势在于您现有的大部分代码都保持原样。这是以速度为代价的(与内存中的字典相比)和灵活性的代价(与直接使用数据库相比)。