我想在Python中进行分层键值存储,这基本上可以归结为将字典存储到文件。我指的是任何类型的字典结构,可能包含其他字典、numpy数组、可序列化的Python对象等等。不仅如此,我还希望它存储经过空间优化的numpy数组,并在Python 2和3之间很好地发挥作用。
下面是我知道的方法。我的问题是,这份清单上遗漏了什么,有没有一个替代方案可以躲过我所有的交易破坏者?
pickle
模块(deal breaker:大量膨胀numpy数组的大小)save
/savez
/load
(deal breaker:Python 2/3中不兼容的格式)PyTables替换numpy.savez
是很有前途的,因为我喜欢使用hdf5的想法,而且它可以有效地压缩numpy数组,这是一个很大的优势。但是,它不采用任何类型的字典结构。
最近,我一直在做的是使用类似于PyTables替换的东西,但是增强它以能够存储任何类型的条目。这实际上工作得很好,但我发现自己将原始数据类型存储在length-1carrays中,这有点尴尬(与实际的length-1数组不明确),即使我将chunksize
设置为1,这样就不会占用太多空间。
外面已经有这样的东西了吗?
谢谢!
目前没有回答
相关问题 更多 >
编程相关推荐