2017-01-27 6 views
0

ファイル、Pythonは次のエラーがスローされます。UnicodeDecodeErrorが

File "/Users/sethkillian/Documents/Python/metar/metar.py", line 31, in get_AirportInfo 
    for line in airports: 

    File "/Users/sethkillian/anaconda/lib/python3.5/encodings/ascii.py", line 26, in decode 
    return codecs.ascii_decode(input, self.errors)[0] 

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 358: ordinal not in range(128) 

Microsoft Excelを使用して、私はUTF-8のCSVファイルとしてファイルを保存しました。

最後に.decode('UTF-8')を入れてみましたが、文字列を受け付けません。

def get_AirportInfo(): 
    airports = open('airport_codes.csv','r') 
    for line in airports: 
     print(line.strip().split(',')) 

任意の考え:

ここに私の元のコードは?私はファイルを見て、私はそれを移動する必要がある特殊文字を見つけることができませんでした。 python3 str

+0

空港を試乗してみてください – Illusionist

+0

いつでもファイルを投稿できますか?私は通常、実行して各列の各値をデコードしてエラーの原因となっているものがどれかを調べます。 –

答えて

0

には属性decodeを持っていませんが、バイナリとしてファイルを読み、そしてあなたがcodecsモジュールを使用し、それはPython2適合するようにしたい場合であるが、ライン

with open('airport_codes.csv', 'rb') as fp: 

for line in fp: 
    print(line.decode('utf-8').strip().split(',')) 

によってラインそれをデコードすることができますpython3内蔵openencodingの引数を持っています0xc3はに有効である可能性があるとして、これらのソリューションは、おそらく、動作します

import codecs 

with codecs.open('airport_codes.csv', 'r', encoding = 'utf-8'): 

for line in fp: 
    print(line.strip().split(',')) 

別のバイトが続く場合は。