Beim Versuch, eine CSV-Datei mit Sonderzeichen mit Python zu lesen, tritt eine Ausnahme auf. Der Code verwendet Kodierung und Dekodierung, um zwischen ASCII und UTF-8 zu konvertieren, aber dieser Ansatz erzeugt immer noch einen Fehler.
Der ursprüngliche Code verwendet die .encode-Methode falsch, indem er sie auf a anwendet Byte-String anstelle eines Unicode-Strings. Um dieses Problem zu lösen, kann der folgende vereinfachte Code verwendet werden:
<code class="python">import csv def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs): csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row] filename = 'da.csv' reader = unicode_csv_reader(open(filename)) for field1, field2, field3 in reader: print field1, field2, field3 </code>
Dieser Code liest UTF-8-codierte Daten effizient in eine Python-Liste ein, ohne dass eine Transcodierung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie lese ich eine UTF-8-CSV-Datei mit Python ohne Codierungsfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!