Ecrire un dictionnaire en CSV en Python
Ce tutoriel présente la manière d’écrire une variable de dictionnaire dans un fichier csv en Python.
Utiliser le module csv
pour écrire un dictionnaire dans un fichier CSV en Python
Le module Python csv
contient des outils et des fonctions pour manipuler les fichiers csv. Il existe deux méthodes faciles à utiliser pour écrire des dictionnaires dans un fichier csv : writer()
et DictWriter()
.
Ces deux méthodes ont des fonctions similaires ; la seule différence est que DictWriter()
est une classe wrapper qui contient plus de fonctions.
Prenons un premier exemple avec un seul dictionnaire contenant quelques paires clé-valeur :
dct = {"Name": "John", "Age": "23", "Country": "USA"}
Dans le premier exemple, nous utilisons writer()
pour accéder à un nouveau fichier csv et y insérer le dictionnaire.
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])
Comme le type d’accès au fichier est w
, le contenu du fichier csv dct.csv
sera remplacé par les nouvelles modifications. Si le fichier n’existe pas, il sera automatiquement créé dans le même répertoire.
Le contenu du fichier csv sera affiché :
Comme il n’y a qu’une seule entrée de dictionnaire, la présentation du fichier csv contient toutes les clés dans la première colonne, et les valeurs sont dans la deuxième colonne.
Exemple d’utilisation d’un tableau de dictionnaires
C’était un exemple de dictionnaire unique. Que faire si vous souhaitez insérer plusieurs dictionnaires dans un seul fichier csv ?
Pour cet exemple, la fonction DictWriter()
sera utilisée pour écrire dans un fichier csv. La présentation CSV du premier exemple devra également être modifiée car il y a plusieurs valeurs avec les mêmes clés.
La première ligne devrait contenir les étiquettes des clés, et les lignes suivantes contiendraient les valeurs de chaque entrée du dictionnaire.
Déclarez d’abord un tableau de dictionnaires avec les mêmes valeurs de clés.
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"},
]
Ensuite, écrivez ce tableau de dictionnaires dans un fichier csv en utilisant le module csv
et 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")
Le paramètre fieldnames
dans DictWriter()
se voit attribuer la variable labels
, qui est un tableau des étiquettes de clés du tableau de dictionnaires.
Il est également bon de s’entraîner à envelopper le code qui manipule les fichiers avec la gestion des exceptions (try ... except
). Ceci au cas où il y aurait des erreurs externes ou des incompatibilités concernant le processus d’écriture du fichier.
Production :
En résumé, le module csv
contient toutes les fonctions et outils nécessaires pour écrire un dictionnaire dans un fichier csv. Les fonctions writer()
et DictWriter()
peuvent toutes deux être facilement utilisées pour y parvenir.
Il est également bon de noter qu’il faut envelopper les blocs qui manipulent les fichiers avec une gestion des exceptions pour s’assurer que les erreurs d’E/S sont capturées avant qu’elles ne cassent quelque chose.
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.
LinkedInArticle connexe - Python CSV
- Convertir XML en CSV à l'aide de Python
- Lire CSV ligne par ligne en Python
- Python écrire au CSV ligne par ligne
- Lire un CSV avec son en-tête en Python
- Fichier texte caché au format CSV en Python
- Fusionner des fichiers CSV en Python
Article connexe - Python Dictionary
- Comment vérifier si une clé existe dans un dictionnaire en Python
- Convertir un dictionnaire en liste en Python
- Comment obtenir tous les fichiers d'un répertoire
- Comment trouver la valeur maximale dans le dictionnaire Python
- Comment trier un dictionnaire Python par valeur
- Comment fusionner deux dictionnaires en Python 2 et 3