2

次のコード:

with open("J:\\python\\.data") as data:
    self.data=pickle.load(data)

次のエラーが発生しました:

File "J:\python\code.py", line 50, in get_events
    self.data=pickle.load(data)
TypeError: 'str' does not support the buffer interface

エンコードする必要があるかもしれないと読み、utf-8 を試してみましたが、うまくいきませんでした。他のフォーマットは何ですか?私は正しい方向に進んでいますか?

.data のオブジェクトがリストであり、プロトコル 2 を使用してピクルされたことを忘れていました。var self.data は既にリストです。

4

2 に答える 2

7
with open("J:\\python\\.data", "rb") as data:
    self.data=pickle.load(data)

pickleドキュメントに記載されているように:

これは、ピクル データ ストリームを読み取るためのバイナリ ファイルを受け取ります。

"rb"したがって、バイナリのモードで開く必要があります。

于 2012-06-30T22:47:06.437 に答える
1

私の場合、以前のバージョンの Python (2.7) でピクルされたオブジェクトを開こうとしていました。

漬け直したら大丈夫でした。

于 2014-06-19T12:49:20.330 に答える