Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lese ich UTF8-CSV-Dateien mit Akzentzeichen in Python?

Wie lese ich UTF8-CSV-Dateien mit Akzentzeichen in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 21:57:30179Durchsuche

How to Read UTF8 CSV Files with Accented Characters in Python?

Lesen einer UTF8-CSV-Datei mit Python

Das Lesen von CSV-Dateien mit Akzentzeichen kann in Python aufgrund der eingeschränkten ASCII-Unterstützung eine Herausforderung sein. In diesem Artikel wird eine Lösung für dieses Problem untersucht, indem der „UnicodeDecodeError“ behoben wird, der beim Versuch, solche Dateien zu lesen, auftritt.

Unicode-freundlicher CSV-Reader

Um mit Akzentzeichen umzugehen, benötigen wir einen CSV-Reader unterstützt die Unicode-Kodierung. Der folgende Code ändert den Standard-CSV-Reader:

<code class="python">def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
    # Decode UTF-8 data into Unicode strings
    csv_reader = csv.reader(unicode_csv_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]</code>

UTF-8-Encoder

Die ursprüngliche Lösung hat die Codierung fälschlicherweise auf einen Byte-String anstelle eines Unicode-Strings angewendet. Der folgende Code korrigiert diesen Fehler:

<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]</code>

Beispielverwendung

Jetzt können wir UTF8-codierte CSV-Dateien sicher wie folgt lesen:

<code class="python">filename = 'output.csv'
reader = unicode_csv_reader(open(filename))

# Iterate through the rows, fields
for field1, field2, field3 in reader:
    print field1, field2, field3 </code>

Hinweis zu Eingabedaten Kodierung

Bedenken Sie, dass die bereitgestellte Lösung davon ausgeht, dass die Eingabedaten bereits in UTF8-Kodierung vorliegen. Wenn dies nicht der Fall ist, können Sie es mit der Decodierungsmethode in UTF8 konvertieren, bevor Sie es an den CSV-Reader übergeben.

Das obige ist der detaillierte Inhalt vonWie lese ich UTF8-CSV-Dateien mit Akzentzeichen in Python?. 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