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