私はPython3.2で作成したデータ配列をピーリングし、Python2.7で開くことを試みています。しかし、Python2.7が対象とするデータの一部がありますが、データのサンプルではうまくいきますが、どういうことが間違っているのかを知る方法は不思議でした。 Python3.2中のSOプロトコル2を使用した酸洗:Python3-> 2データ
:
import pickle
with open('c:\\test.pickle', mode='wb') as f:
pickle.dump(t_array, f, 2)
そして、Python2.7に読み出す際:
import pickle
f = open('c:\\test.pickle', mode='rb')
t_data = pickle.load(f)
エラーがある:
File "C:\Python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python27\lib\pickle.py", line 1217, in load_build
setstate(state)
TypeError: must be char, not unicode
データの配列でありますディクテーションは、最大で2つ深くネストされます。例:
{'key3': '3', 'key2': 1.1, 'key1': 1, 'dict': {'dkey2': 2, 'dkey1': 1}}
ここで何が起こっているのでしょうか?元の(大)データセットで何が問題を引き起こしているかを確認する簡単な方法はありますか?
ダンピングしているデータのテキスト表現へのリンクを投稿することはできますか(テキストとして表現可能であるとします)? – Taymon
〜30MBのファイル(ピクルされている間)ですので、どのように役立つか分かりません。また、エラーの特定の原因を特定するのが難しい理由の一部です...すべてのデータはテキストとして表現され、与えられた例とかなり類似しています。 – cohoz
さて、この例は私にとってはうまくいきます(もちろん、文字列はUnicodeオブジェクトとして戻ってきます)。だから私は本当に間違っているかもしれないと言うことはできません。 – Taymon