Мне интересно, есть ли способ загрузить объект, который был маринован в Python 2.4, с Python 3.4.Unpickling python 2 object with python 3
Я использую 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
, содержащие ключи и значение типа str
.
Итак, мой вопрос: есть ли способ загрузить объект, первоначально замаринованный в python 2.4, с помощью python 3.4?
ли Python 2.4 есть 'json' модуль? Возможно, вы могли бы написать сценарий 2.4, который разглаживает объект и сохраняет его как объект json, а затем записывает скрипт 3.4, который читает объект json и сохраняет его как 3.4-совместимый объект рассола. Это будет одноразовая операция, которую вы запускаете на всех ваших файлах pickle. – Kevin
Я думал о похожих строках, учитывая, что это dicts, я считаю, что могу просто сменить sys.stdout на файл и распечатать его, но я хочу посмотреть, могу ли я загрузить их сначала – Scironic