Mi chiedo se c'è un modo per caricare un oggetto che è stato decapitato in Python 2.4, con Python 3.4.Unpickling di un oggetto python 2 con python 3
Ho eseguito 2to3 su una grande quantità di codice legacy aziendale per aggiornarlo.
Dopo aver fatto questo, quando si esegue il file ottengo il seguente errore:
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)
guardare l'oggetto in salamoia in lizza, è un dict
in un dict
, contenente chiavi e valori di tipo str
.
Quindi la mia domanda è: c'è un modo per caricare un oggetto, originariamente decapitato in python 2.4, con python 3.4?
fa Python 2.4 hanno il modulo 'json'? Forse potresti scrivere uno script 2.4 che despassa l'oggetto e lo salva come un oggetto json, e poi scrivi uno script 3.4 che legge l'oggetto json e lo salva come oggetto pickle compatibile con 3.4. Questa operazione potrebbe essere eseguita una volta sola su tutti i file pickle. – Kevin
Stavo pensando in modo simile, considerando che si tratta di dts, penso che potrei semplicemente cambiare sys.stdout in un file e stamparli, ma voglio vedere se riesco a caricarli prima – Scironic