pickle.loadで読み込み時にUnicodeDecodeError
Posted On 2018-09-24
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”にしよう
(もうちょっとわかりやすいエラー出して)
Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内
技術書コーナー
北海道の駅巡りコーナー