Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lese ich eine UTF-8-CSV-Datei mit Python ohne Codierungsfehler?

Wie lese ich eine UTF-8-CSV-Datei mit Python ohne Codierungsfehler?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 12:40:311050Durchsuche

How to Read a UTF-8 CSV File with Python Without Encoding Errors?

Lesen einer UTF8-CSV-Datei mit Python

Problem

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.

Lösung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn