Ich frage mich, ob es eine Möglichkeit gibt, ein Objekt zu laden, das in Python 2.4 mit Python 3.4 gebeizt wurde.Python 2-Objekt mit Python 3 entpacken
Ich habe 2to3 auf einer großen Menge von Unternehmens-Legacy-Code ausgeführt, um es auf den neuesten Stand zu bringen.
dies getan hat, wenn die Datei ausgeführt wird ich die folgende Fehlermeldung erhalten:
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)
am gebeizt Objekt im Rennen suchen, es ist ein dict
in einem dict
, str
Schlüssel und Werte des Typs enthält.
Also meine Frage ist: Gibt es eine Möglichkeit, ein Objekt, ursprünglich in Python 2.4 gebeizt, mit Python 3.4 zu laden?
Does Python 2.4 'json' Modul haben? Vielleicht könnten Sie ein 2.4-Skript schreiben, das das Objekt entknickt und es als json-Objekt speichert, und dann ein 3.4-Skript schreiben, das das json-Objekt liest und als 3.4-kompatibles Pickle-Objekt speichert. Dies wäre eine einmalige Operation, die Sie auf all Ihren Pickle-Dateien ausführen. – Kevin
Ich dachte in ähnlicher Weise, wenn ich bedenke, dass dies dicts sind Ich denke, ich könnte sys.stdout nur in eine Datei ändern und ausdrucken, aber ich möchte sehen, ob ich sie zuerst laden kann – Scironic