Python中的缓冲/批序列化?
我有一个算法,可以迭代创建一个非常大的高度嵌套的字典。我想缓冲这个字典的一部分,然后定期将缓冲流传输到磁盘,这样我可以在另一个时间重新创建整个字典Python中的缓冲/批序列化?,python,python-2.7,serialization,pickle,Python,Python 2.7,Serialization,Pickle,我有一个算法,可以迭代创建一个非常大的高度嵌套的字典。我想缓冲这个字典的一部分,然后定期将缓冲流传输到磁盘,这样我可以在另一个时间重新创建整个字典 看来pickle是用于一次性序列化的。有没有一种方法可以将字典批量序列化为单个输出流?好的,下面的方法似乎可以部分解决此问题: with open('file','ab') as f: while <stopping condition>: <generate (key,value) pair 'k'> p
看来pickle是用于一次性序列化的。有没有一种方法可以将字典批量序列化为单个输出流?好的,下面的方法似乎可以部分解决此问题:
with open('file','ab') as f:
while <stopping condition>:
<generate (key,value) pair 'k'>
pickle.dump(k,f)
这将在运行时重建完整的字典。
klepot
能够一次序列化一个字典条目,以便在类似数据库的对象(如SQL db、一堆文件等)之间传递条目klepot
提供了一种在分布式/并行资源之间传递字典条目的简单方法。这就是你的意思吗?@MikeMcKerns谢谢。我的目标比较简单。我只是不想在算法运行时浪费时间进行RAM管理。但是,我希望以后在RAM中重建整个字典。这真的只是为了提高速度。
with open('file','rb') as f:
fullMapping = {}
hasNext = True
while hasNext:
try:
fullMapping.update(pickle.load(f))
except:
f.close()
hasNext = False