我正在开发一个基于 python 2.4 的项目(它是一个嵌入式 python 项目,所以我没有选择使用的 python 版本)。在整个应用程序中,我们使用array.array
来存储数据。
在 2.5中添加了对酸洗array.array
对象的支持pickle
(和)。cPickle
当使用纯 python pickle 类(我们将 Pickler/Unpickler 子类化来处理数组)时,我们在 2.4 中有一个可行的解决方法,但这不适用于 cPickle(由于性能问题,我们需要这个)。
有什么建议么?
编辑——解决方案:
这是似乎工作的最终代码(感谢您的建议):
# Add serialization for array objects
def array_unpickler(data):
return array.array(data[0], data[1:])
def array_pickler(arr):
return array_unpickler, ("%s%s" % (arr.typecode, arr.tostring()),)
copy_reg.pickle(array.ArrayType, array_pickler, array_unpickler)