← retour aux snippets

csv: DictWriter/DictReader pour colonnes nommées

Écrire et lire des CSV en utilisant des dictionnaires par ligne.

python csv #csv

objectif

Écrire et lire des CSV en utilisant des dictionnaires par ligne.

code minimal

import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=["a","b"]); w.writeheader(); w.writerow({"a":1,"b":2})
buf.seek(0); r = csv.DictReader(buf)
row = next(r)
print(row["a"] == "1" and row["b"] == "2")  # attendu: True

utilisation

import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=["x","y"]); w.writeheader(); w.writerows([{"x":1,"y":2},{"x":3,"y":4}])
buf.seek(0); rows = list(csv.DictReader(buf))
print(len(rows) == 2 and rows[1]["y"] == "4")

variante(s) utile(s)

import csv
print(",".join(csv.list_dialects()) != "")

notes

  • Les valeurs sont des chaînes lors de la lecture -> caster selon besoin.
  • Gérez newline=” sur fichiers réels pour éviter des lignes vides sous Windows.