Scrivi il dizionario in CSV in Python
Questo tutorial introdurrà come scrivere una variabile del dizionario in un file csv in Python.
Usa il modulo csv
per scrivere un dizionario in un file CSV in Python
Il modulo Python csv
contiene strumenti e funzioni per manipolare i file csv. Ci sono due semplici metodi da usare per scrivere dizionari in un file csv: writer()
e DictWriter()
.
Questi due metodi hanno funzioni simili; l’unica differenza è che DictWriter()
è una classe wrapper che contiene più funzioni.
Facciamo un primo esempio con un singolo dizionario con poche coppie chiave-valore:
dct = {"Name": "John", "Age": "23", "Country": "USA"}
Nel primo esempio, usiamo writer()
per accedere a un nuovo file csv e inserirvi il dizionario.
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])
Poiché il tipo di accesso al file è w
, il contenuto del file csv dct.csv
sarà sovrascritto dalle nuove modifiche. Se il file non esiste, verrà creato automaticamente nella stessa directory.
Il contenuto del file CSV produrrà:
Poiché esiste una sola voce di dizionario, il layout del file csv contiene tutte le chiavi nella prima colonna ei valori sono nella seconda colonna.
Esempio di utilizzo di un array di dizionari
Quello era un esempio di un singolo dizionario. E se volessi inserire più dizionari in un unico file CSV?
Per questo esempio, la funzione DictWriter()
verrà utilizzata per scrivere in un file csv. Anche il layout CSV del primo esempio dovrebbe essere modificato poiché ci sono più valori con le stesse chiavi.
La prima riga dovrebbe contenere le etichette delle chiavi e le righe conseguenti conterranno i valori per ciascuna voce del dizionario.
Innanzitutto, dichiara un array di dizionari con gli stessi valori di chiave.
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"},
]
Ora scrivi questo array di dizionari in un file csv usando il modulo csv
e DictWriter()
.
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")
Al parametro fieldnames
in DictWriter()
è assegnata la variabile labels
, che è un array dell’array di etichette chiave dei dizionari.
È anche utile esercitarsi nel wrapping del codice che manipola i file con la gestione delle eccezioni (try ... except
). Questo nel caso in cui si verifichino errori esterni o incompatibilità riguardo al processo di scrittura del file.
Produzione:
In sintesi, il modulo csv
contiene tutte le funzioni e gli strumenti necessari per scrivere un dizionario in un file csv. Usando le funzioni writer()
e DictWriter()
si possono usare entrambe facilmente per ottenere questo risultato.
È anche utile notare di avvolgere i blocchi che manipolano i file con la gestione delle eccezioni per garantire che gli errori di I/O vengano rilevati prima che si rompa qualcosa.
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.
LinkedInArticolo correlato - Python CSV
- Leggi CSV in array in Python
- Aggiungi una nuova riga a un file CSV in Python
- Converti CSV in dizionario in Python
- Converti file CSV in file JSON in Python
- Da JSON a CSV in Python
- Leggi CSV in lista in Python