Heim  >  Artikel  >  Backend-Entwicklung  >  Wie schreibe ich ein Python-Wörterbuch als Header und Wert mit csv.DictWriter in CSV?

Wie schreibe ich ein Python-Wörterbuch als Header und Wert mit csv.DictWriter in CSV?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-17 18:55:30285Durchsuche

How to Write Python Dictionary to CSV as Header and Value Using csv.DictWriter?

csv.DictWriter für CSV-Datei mit Headern und Werten

Diese Frage sucht nach einer Methode zum Exportieren eines Python-Wörterbuchs in eine CSV-Datei mit die Wörterbuchschlüssel, die die Kopfzeile bilden, und die Werte, aus denen die folgende Zeile besteht.

Der bereitgestellte Codeausschnitt:

<code class="python">f = open('mycsvfile.csv','wb')
w = csv.DictWriter(f,my_dict.keys())
w.writerows(my_dict)
f.close()</code>

stößt auf ein Problem, bei dem nur die Wörterbuchschlüssel in die erste Zeile geschrieben werden. Lassen Sie die Werte in der vorgesehenen zweiten Zeile ungeschrieben.

Die Lösung liegt in zwei Anpassungen:

  • Verwenden Sie DictWriter.writerow() anstelle von DictWriter.writerows(), wie letzteres erwartet eine Liste von Wörterbüchern statt eines einzelnen Wörterbuchs.
  • Integieren Sie DictWriter.writeheader(), um die Wörterbuchschlüssel als Header zu schreiben.

Zusätzlich wird empfohlen, die with-Anweisung zu verwenden für die Dateiverarbeitung, da es die Lesbarkeit des Codes optimiert und das Schließen von Dateien automatisch übernimmt.

Hier ist ein geändertes Codebeispiel, das diese Änderungen verkörpert:

<code class="python">import csv

my_dict = {"test": 1, "testing": 2}

with open("mycsvfile.csv", "w", newline="") as f:
    w = csv.DictWriter(f, my_dict.keys())
    w.writeheader()
    w.writerow(my_dict)</code>

Dieser verfeinerte Code erzeugt eine CSV-Datei mit den erwarteten Format:

test,testing
1,2

Das obige ist der detaillierte Inhalt vonWie schreibe ich ein Python-Wörterbuch als Header und Wert mit csv.DictWriter in CSV?. 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