Buffered/batch 在 Python 中序列化?

Buffered/batch serialization in Python?

我有一个算法可以迭代创建一个非常大的、高度嵌套的字典。我想缓冲这本字典的部分内容,然后定期将缓冲区流式传输到磁盘,以便我可以在其他时间重新创建整个字典。

pickle 似乎是为一次性序列化而设计的。有没有办法将字典批量序列化为单个输出流?

好的,看来下面可以部分解决问题:

with open('file','ab') as f:
  while <stopping condition>:
    <generate (key,value) pair 'k'>
    pickle.dump(k,f)

现在,要重建整个字典,您只需执行以下操作:

with open('file','rb') as f:
    fullMapping = {}
        hasNext = True
        while hasNext:
            try:
                fullMapping.update(pickle.load(f))
            except:
                f.close()
                hasNext = False

这将在 运行 时重建完整的字典。