【发布时间】:2021-10-22 18:18:29
【问题描述】:
我正在腌制一个非常大的(就属性和原始大小而言)类。我一直在使用pickle.dump选择pickle没有问题,直到我达到4GB以下,现在我一直得到“内存错误”。我也尝试过使用 json.dump (我得到“不是 JSON 可序列化”错误)。我也尝试过 Hickle,但使用 Hickle 时遇到的错误与使用 Pickle 时相同。
我不能在这里发布所有代码(它很长),但本质上它是一个包含另一个类的值字典的类 - 像这样:
class one:
def __init__(self):
self.somedict = {}
def addItem(self,name,item)
self.somedict[name] = item
class two:
def __init__(self):
self.values = [0]*100
其中 name 是一个字符串,item 是第二类对象的一个实例。
其中包含更多代码,但这是保存绝大多数内容的地方。是否有可靠且理想的快速 解决方案将此对象保存到文件中,然后能够在以后重新加载它。我每隔几千次迭代就保存一次(作为备份以防万一出现问题,所以我需要它相当快)。
谢谢!
编辑#1:
我只是认为在我的系统中包含一些详细信息可能会很有用。我有 64Gb 的内存 - 所以我不认为腌制 3-4GB 的文件会导致这种类型的问题(尽管我可能错了!)。
【问题讨论】:
标签: json python-3.x pickle