我想知道是否有一种方法可以在Python 3.4中加载用Python 2.4 pickle的对象。
我一直在运行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)
看到有争议的腌制对象,它是一个包含类型为str
的键和值的dict
字典中的dict
。
所以我的问题是:是否有一种方法可以使用Python 3.4加载最初在Python 2.4中腌制的对象?
json
模块吗?也许你可以编写一个2.4脚本,将对象反序列化并保存为JSON对象,然后编写一个3.4脚本,读取JSON对象并将其保存为3.4兼容的pickle对象。这将是一个一次性操作,您可以在所有pickle文件上运行它。 - Kevin