2017-08-06 186 views
1

我是Python新手,我正嘗試使用下面的腳本讀取csv文件。Python:UnicodeDecodeError:'utf-8'編解碼器無法解碼位置35中的字節0x96:無效起始字節

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='utf-8') 

但是,收到錯誤「的UnicodeDecodeError:在35位‘UTF-8’編解碼器不能解碼字節0x96:無效的起始字節」,請幫我在這裏認識的問題,我使用的編碼在腳本認爲這將解決錯誤。

+1

顯然你的csv文件不是UTF-8編碼... –

+1

編碼='cp1252'可能值得一試,如果你在Windows上。 –

+0

@MartinR,非常感謝您的幫助。編碼='cp1252'工作很快。 – user3734568

回答

2

發生這種情況是因爲您選擇了錯誤的編碼。

如果您使用的是Windows只是更換

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='utf-8') 

Past=pd.read_csv("C:/Users/Admin/Desktop/Python/Past.csv",encoding='cp1252') 

應該解決的問題。

+1

感謝您的解決方案,我能夠使用您共享的解決方案讀取CSV文件中的所有行 – user3734568

2

使用此解決方案,它將去除(忽略)字符並返回沒有它們的字符串。只有在你需要剝離它們而不是轉換它們時才使用它。

with open(path, encoding="utf8", errors='ignore') as f: 

使用errors='ignore'您只會丟失一些字符。但如果你不關心他們,因爲他們似乎是來自連接到我的套接字服務器的客戶端的錯誤格式和編程的額外字符。那麼它是一個簡單的直接解決方reference

0

嘗試使用:

pd.read_csv(「Your filename", encoding="ISO-8859-1」)

我解析從一些網站在此編碼代替默認UTF-8編碼,其是標準轉換的代碼。

+0

歡迎使用StackOverflow。只有代碼在他們的答案往往會被標記爲刪除,因爲他們是「低質量」。請閱讀關於回答問題的幫助部分,然後考慮在答案中添加一些評論。 – Graham

相關問題