こしあん
2018-09-24

pickle.loadで読み込み時にUnicodeDecodeError

Pocket
LINEで送る
Delicious にシェア

3.1k{icon} {views}



pickle.dump()で保存は上手く行ったのに、それを読み込むとエラー吐いて原因がよくわからない……それで一時間近くハマったという恐怖な話。

pickle.load()で読み込むとこのようなエラーが出るおかしい。マルチバイト文字なんか入れていないのに。

UnicodeDecodeError: ‘cp932’ codec can’t decode byte 0x85 in position 81: illegal
multibyte sequence

原因:openでの読み込みモードが”rb”ではなく”r”だった

原因は単純でバイナリモードで読み込まなかったから。1時間ぐらいしてこれ気づいたときは殴りたくなった。

with open("picklefile.dat", "r") as fp:
    data = pickle.load(fp)

教訓:pickleを読み込むときは”r”ではなく”rb”にしよう
(もうちょっとわかりやすいエラー出して)

Pocket
LINEで送る



Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Tags:

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です