簡體   English   中英

“UnicodeDecodeError:'charmap'編解碼器無法解碼”pickle load中的錯誤

[英]“UnicodeDecodeError: 'charmap' codec can't decode” error in pickle load

我想在文件中保存一組Tweet對象。 Tweet類實例包含utf8編碼字符。 你可以看到下面的代碼:

class Tweet:
    author='';
    text='';
    time='';
    date='';
    timestamp='';

with open('tweets.dat','wb') as f:
     pickle.dump(all_tweets,f)

with open('tweets.dat') as f:
   all_tweets = pickle.load(f)

當我運行代碼時,它會在pickle.load(f)行上返回一個異常,說明:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 25: character maps to <undefined>

我的機器規格:

Python 3.5.2 | Anaconda 4.2.0(64位)| (默認情況下,2016年7月5日,11:41:13)[winv上的MSC v.1900 64位(AMD64)]

在Python 3中,pickle模塊期望底層文件對象接受或返回字節 您以二進制模式正確打開文件進行寫入,但未能在讀取時執行相同操作。 閱讀部分應為:

with open('tweets.dat', 'rb') as f:
   all_tweets = pickle.load(f)

參考:摘自pickle.load(fd)的文檔:

...因此,文件可以是為二進制讀取打開的磁盤文件,io.BytesIO對象或滿足此接口的任何其他自定義對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM