こしあん
2018-09-24

pickle.loadで読み込み時にUnicodeDecodeError

Pocket
LINEで送る
Delicious にシェア

1.9k{icon} {views}

新刊情報

技術書典8の新刊『モザイク除去から学ぶ 最先端のディープラーニング』(A4・195ページ)好評通販中です! 機械学習の入門からGANの最先端までを書いたおすすめの本となっています! Boothで試し読みできます。情報まとめ・質問用GitHub



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”にしよう
(もうちょっとわかりやすいエラー出して)


新刊情報

技術書典8の新刊『モザイク除去から学ぶ 最先端のディープラーニング』好評通販中(A4・195ページ)です! Boothで試し読みもできるのでよろしくね!


Pocket
LINEで送る
Delicious にシェア

Tags:

Add a Comment

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