Dictionary in CSV schreiben in Python
In diesem Tutorial wird gezeigt, wie man in Python eine Dictionaryvariable in eine csv-Datei schreiben kann.
Verwenden Sie das csv
-Modul, um ein Dictionary in eine CSV-Datei in Python zu schreiben
Das Python-Modul csv
enthält Werkzeuge und Funktionen, um csv-Dateien zu manipulieren. Es gibt zwei einfache Methoden, um Wörterbücher in eine csv-Datei zu schreiben: writer()
und DictWriter()
.
Diese beiden Methoden haben ähnliche Funktionen; der einzige Unterschied ist, dass DictWriter()
eine Wrapper-Klasse ist, die mehr Funktionen enthält.
Lassen Sie uns ein erstes Beispiel mit einem einzelnen Dictionary mit ein paar Schlüssel-Wert-Paaren einstellen:
dct = {"Name": "John", "Age": "23", "Country": "USA"}
Im ersten Beispiel verwenden wir writer()
, um auf eine neue csv-Datei zuzugreifen und das Dictionary in diese einzufügen.
import csv
dct = {"Name": "John", "Age": "23", "Country": "USA"}
with open("dct.csv", "w") as f:
writer = csv.writer(f)
for k, v in dct.items():
writer.writerow([k, v])
Da der Dateizugriffstyp w
ist, wird der Inhalt der csv-Datei dct.csv
durch die neuen Änderungen überschrieben. Wenn die Datei nicht vorhanden ist, wird sie automatisch im gleichen Verzeichnis erstellt.
Der Inhalt der csv-Datei wird ausgegeben:
Da es nur einen Dictionaryeintrag gibt, enthält das Layout der csv-Datei alle Schlüssel in der ersten Spalte, und die Werte stehen in der zweiten Spalte.
Beispiel für die Verwendung eines Arrays von Dictionaries
Das war ein Beispiel für ein einzelnes Dictionary. Was ist, wenn Sie mehrere Dictionaries in eine einzelne csv-Datei einfügen möchten?
Für dieses Beispiel wird die Funktion DictWriter()
verwendet, um in eine csv-Datei zu schreiben. Das CSV-Layout des ersten Beispiels müsste ebenfalls geändert werden, da es mehrere Werte mit denselben Schlüsseln gibt.
Die erste Zeile sollte die Schlüsselbezeichnungen enthalten, und die nachfolgenden Zeilen würden die Werte für jeden Dictionaryeintrag enthalten.
Deklarieren Sie zunächst ein Array von Dictionaries mit den gleichen Schlüsselwerten.
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
Schreiben Sie nun dieses Array von Dictionaries mit dem Modul csv
und DictWriter()
in eine csv-Datei.
import csv
labels = ["Name", "Age", "Country"]
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
try:
with open("csv_dct.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=labels)
writer.writeheader()
for elem in dct_arr:
writer.writerow(elem)
except IOError:
print("I/O error")
Dem Parameter fieldnames
in DictWriter()
wird die Variable labels
zugewiesen, die ein Array mit den Schlüsselbezeichnungen des Arrays von Dictionaries ist.
Es ist auch gut zu üben, Code, der Dateien manipuliert, mit einer Ausnahmebehandlung zu umhüllen (try ... except
). Dies ist für den Fall, dass es externe Fehler oder Inkompatibilitäten beim Schreiben von Dateien geben sollte.
Ausgabe:
Zusammengefasst enthält das Modul csv
alle notwendigen Funktionen und Werkzeuge, um ein Dictionary in eine csv-Datei zu schreiben. Mit den beiden Funktionen writer()
und DictWriter()
kann dies einfach erreicht werden.
Es ist auch gut zu beachten, Blöcke, die Dateien manipulieren, mit Ausnahmebehandlung zu umhüllen, um sicherzustellen, dass IO-Fehler abgefangen werden, bevor etwas kaputt geht.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInVerwandter Artikel - Python CSV
- Importieren Sie mehrere CSV-Dateien in Pandas und verketten Sie sie zu einem DataFrame
- Python teilt CSV in mehrere Dateien auf
- Vergleichen Sie zwei CSV-Dateien und drucken Sie Unterschiede mit Python
- Konvertieren XML in CSV mit Python
- Lesen CSV Zeile für Zeile in Python
- Python Schreiben in CSV Zeile für Zeile
Verwandter Artikel - Python Dictionary
- Wie man prüft, ob ein Schlüssel in einem Dictionary in Python vorhanden ist
- Konvertieren eines Dictionaries in eine Liste in Python
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie finde ich den Maximalwert im Python-Dictionary
- Wie man ein Python-Dictionary nach Wert sortiert
- Wie man zwei Wörterbücher in Python 2 und 3 zusammenführen kann