2017-08-06 23 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: 『UTF-8』コーデックは位置35のバイト0x96をデコードすることはできません:無効な開始バイト」を取得し、私はここでの問題を知って助けてください、私はスクリプトでのエンコードを使用し、それを考えましたエラーを解決します。

+1

あなたのcsvファイルはUTF-8でエンコードされていません。 –

+1

Windowsの場合、 'encoding = 'cp1252''は試してみる価値があります。 –

+0

@MartinR、あなたの助けにたくさんの大変感謝します。 encoding = 'cp1252'はすばやく動作しました。 – user3734568

答えて

2

これは、間違ったエンコードを選択したために発生します。

は、Windows上にある場合は、単に

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

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

を交換しても問題が解決すべきです。

+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

関連する問題