UnicodeDecodeError: 'ascii' codec can't decode byte

エラーUnicodeEncodeError

エラーメッセージ

 状態:-  閲覧数:463  投稿日:2017-10-28  更新日:2017-11-11  
'ascii'コーデックはバイトをデコードできません
[error] UnicodeDecodeError: 'ascii' codec can't decode byte


エラー原因


open() が CSV ファイルの読み込みに使われるため、ファイルはデフォルトではシステムのデフォルトエンコーディングでユニコード文字列にデコードされるため
locale.getpreferredencoding() を参照


エラー対応


他のエンコーディングを用いてデコードするには?
・open の引数 encoding を設定する


遭遇例


Python3.6でutf8形式のCSVファイル読込する際、エラー発生

修正前
import csv

csvfile = open('../../data/chp3/data-text.csv', 'rb')
reader = csv.reader(csvfile)


エラーメッセージ
[error] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1015: ordinal not in range(128), referer:

修正後
import csv

csvfile = open('../../data/chp3/data-text.csv', 'r', encoding='utf8')
reader = csv.reader(csvfile)



UnicodeEncodeError: 'ascii' codec can't encode characters

コメント投稿(ログインが必要)