2017-10-07 47 views
1

我正在嘗試讀取包含產品數據的文檔並打印某些產品的數據。問題是,我似乎無法讀取它,沒有錯誤。我只是試圖打印前100個字符,以便讀取它,然後我可以找出需要打印的內容以及如何將其從文件中取出。但我被卡住了。該文件是UTF-8,或者它應該是...我錯過了什麼?UnicodeDecodeError:嘗試讀取文檔時無效的連續字節

這裏是我的代碼:

,這裏是回溯我得到:

Traceback (most recent call last): 
File "nilescratchpad.py", line 2, in <module> 
productsread = products.read() 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 7451: invalid continuation byte 
+0

如果您閱讀了文檔,並且它在UTF-8編解碼器中引發錯誤,那麼它不是UTF-8,或者至少有錯誤。你可以試試'open('products.csv',errors ='replace')'。 –

+0

某處肯定有錯誤。這工作!非常感謝!出於好奇,它是什麼取代了錯誤? – pinkpython

回答

0

如果你讀了文件,它拋出用UTF-8編碼解碼器的錯誤,那麼它不是UTF-8,或者至少有錯誤。 open('products.csv',encoding='utf8',errors='replace')將用Unicode代碼點U+FFFD REPLACEMENT CHARACTER替換所有錯誤,但請確保您的大部分文檔實際上是 UTF-8。

+0

This Works!非常感謝!它必須在某個地方出現錯誤......因爲大部分文檔都是UTF-8,現在顯示的內容在採納您的建議之後是合理的,並且是正確的。非常感謝! :) – pinkpython

+0

明白了!現在會做!我是Stack Overflow和Python的新手,還有編碼......所以我必須得到15的聲望,直到我的選票出現,或者如此說。 – pinkpython

相關問題