私はPython 3.2を使用して辞書を漬けるプロセスを持っています。 Python 2.7または2.6を使用してこの辞書をunpickleする必要があります。問題は、Pythonのバージョン間で転送するときに私はそれをフィードしようとしているPythonのAPIを混乱させるユニコードのデータでいっぱいの辞書を取得することです。 Pythonの3.2Python pickleはバージョン間でユニコードに変換されます
酸洗:Pythonの2.6で
myDict = {'a': 'first', 'b': 'second', 'c': 'third'}
with open(file, 'wb') as f:
pickle.dump(myDict, f, 2)
unpickle化:
with open(file, f) as f:
myDict = pickle.load(f)
戻り値:{u'a ':u'first'、u'c ':u'third' 、u'b ':u'second'}
私が入れたもの(つまり、ユニコードではないもの)をどのように戻すことができますか?
Ah!私の誤解。私は3.xのすべての文字列がUnicodeであることに気づいていませんでした。 pre v3のドキュメントによると、protocol = 0はASCII形式になっていますが、何かが変更され、v3のドキュメントが 'ASCII'から ' 「人間が読める」(しばらく)。あなたの解決策は迅速かつ痛みはありません。ありがとう – MappaGnosis