Eu estou querendo saber se existe uma maneira de carregar um objeto que foi em conserva em Python 2.4, com Python 3.4.
Eu tenho executado o 2to3 em uma grande quantidade de código legado da empresa para atualizá-lo.
Feito isso, ao executar o arquivo, recebo o seguinte erro:
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)
Observando o objeto em conserva na disputa, é um dict
em um dict
, contendo chaves e valores do tipo str
.
Então, minha pergunta é: Existe uma maneira de carregar um objeto, originalmente em conserva no python 2.4, com o python 3.4?
json
módulo? Talvez você possa escrever um script 2.4 que remova o objeto e o salve como objeto json e, em seguida, escreva um script 3.4 que leia o objeto json e salve-o como um objeto pickle compatível com 3.4. Essa seria uma operação única executada em todos os seus arquivos pickle.