Ce face csv.DictWriter
DictWriter primește lista coloanelor (fieldnames), iar writeheader() scrie rândul de antet. writerow(d) și writerows(lista) scriu dicționare, punând valorile în ordinea coloanelor.
Cheile lipsă primesc restval. Cheile în plus dau ValueError, cu excepția cazului în care extrasaction="ignore".
Parametri
| Parametru | Descriere |
|---|---|
fieldnames |
Coloanele, în ordine. |
restval |
Valoarea pentru cheile lipsă. |
extrasaction |
'raise' sau 'ignore' pentru chei în plus. |
Ce returnează
Un obiect writer.
Exemple
Exemplul 1: Export de utilizatori
import csv
from pathlib import Path
utilizatori = [
{"nume": "Ana", "email": "ana@exemplu.ro", "parola": "secret"},
{"nume": "Dan", "oras": "Cluj"},
]
with open("utilizatori.csv", "w", encoding="utf-8", newline="") as f:
w = csv.DictWriter(f, fieldnames=["nume", "email", "oras"], restval="-", extrasaction="ignore")
w.writeheader()
w.writerows(utilizatori)
print(Path("utilizatori.csv").read_text(encoding="utf-8"))
Rezultat
nume,email,oras
Ana,ana@exemplu.ro,-
Dan,-,Cluj
Greșeli frecvente
- Un dicționar are o cheie care nu e în
fieldnamesși primeștiValueError: dict contains fields not in fieldnames. Adaugă coloana sau foloseșteextrasaction="ignore".
Comenzi înrudite
csv.writer(): Scrie liste de valori într-un fișier CSV, cu ghilimele puse automat unde trebuie.csv.DictReader: Citește un CSV cu antet, fiecare rând ca dicționar {coloană: valoare}.json.dump(): Scrie o valoare Python, ca JSON, direct într-un fișier deschis.