我想知道是否有一种方法可以加载在Python 2.4和Python 3.4中腌制的对象。
我一直在大量公司遗留代码上运行2to3,以使其保持最新状态。
完成此操作后,在运行文件时出现以下错误:
File "H:\fixers - 3.4\addressfixer - 3.4\trunk\lib\address\address_generic.py"
, line 382, in read_ref_files
d = pickle.load(open(mshelffile, 'rb'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal
not in range(128)
在争用中查看腌制的对象,它dict
在中dict
,包含键和type值str
。
所以我的问题是:有没有办法用python 3.4加载最初在python 2.4中腌制的对象?
json
模块?也许您可以编写一个2.4脚本来解污对象并将其保存为json对象,然后编写一个3.4脚本以读取json对象并将其另存为与3.4兼容的pickle对象。这将是对所有pickle文件运行的一次性操作。