我正在尝试序列化一个大的(~10**6行,每个行有~20个值)列表,供以后自己使用(因此pickle缺乏安全性并不重要)。
列表中的每一行都是一个值元组,从某些SQL数据库派生。到目前为止,我已经看到了datetime.datetime
、字符串、整数和NoneType,但我可能最终不得不支持其他数据类型。
对于序列化,我考虑过pickle(cPickle)、json和纯文本——但是只有pickle保存类型信息:json不能序列化datetime.datetime
,纯文本有其明显的缺点。
不过,对于这么大的数据,cPickle的速度相当慢,我正在寻找一个更快的替代方案。
https://developers.google.com/protocol-buffers/docs/pythontutorial
我想你应该看看。它的速度应该快得离谱,至少比使用RDBMS快,因为它非常松懈,并且没有任何读/写限制,另外,您还可以获得一个更好的接口来管理数据,至少与挑选数据相比是这样。
Pickle实际上非常快,只要您不使用(默认)ASCII协议。确保使用
protocol=pickle.HIGHEST_PROTOCOL
转储。相关问题 更多 >
编程相关推荐