2016-09-08 4 views
1

Der Versuch, aus einer CSV-Datei zu lesen und die Daten in eine XML-Datei zu schreiben. Ich stoße auf:UnicodeDecodeError: 'Ascii'-Codec kann Byte mit CSV-Lesung nicht decodieren

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

Meine Frage ist, was ist der beste Weg, diese Art von Fehler zu ignorieren und die Verarbeitung des Datensatzes fortzusetzen. Nach ähnlichen Fragen zu lesen, habe ich hinzufügen: # -*- coding: utf-8 -*- meine Datei aber nicht

+0

Dekodieren Sie den Eingang korrekt, z. Lese als Bytes und dann 'input.decode (" utf-8 ")' (wenn deine Eingabe utf-8 ist). – syntonym

Antwort

0

Sie können versuchen, half auch csv mit Codecs öffnen:

import codecs 
codecs.open(file_name, 'r', 'utf8') 

Da jede Zeile enthalten wird ‚\ n‘ string Sie müssen line.rstrip() anwenden, wenn Sie durch die Linien schleifen.

Hinweis: Bitte versuchen Sie nicht, Werte in str zu konvertieren, da Sie dort auf einen anderen Fehler stoßen werden.

+0

Dank @Boris, werde versuchen, Ihren Vorschlag – user1195192

+0

Bitte lesen Sie die Bearbeitung, die '\ n' gab mir Kopfschmerzen mehr als einmal :) – zipa

+0

So lese ich im Moment: mit open ('myFile.csv', 'rb') als ifile: reader = csv.reader (ifile) für rownum, row in enumerate (reader): – user1195192

Verwandte Themen