все Python 3Файлы и I/Oпонятие
csv.DictWriter
csv — запись
Писатель CSV для словарей: порядок столбцов задаёт обязательный fieldnames, writeheader() пишет строку заголовка.
Синтаксис
w = csv.DictWriter(f, fieldnames, restval='', extrasaction='raise'); w.writeheader()
Заголовок сам не пишется — без writeheader() файл получится без первой строки. Ключ, которого нет в fieldnames, вызывает ValueError; чтобы молча отбросить лишнее, нужен extrasaction='ignore'. Отсутствующие ключи, наоборот, не ошибка: вместо них пишется restval, по умолчанию пустая строка.
Примеры
import csv
import io
out = io.StringIO()
w = csv.DictWriter(out, fieldnames=['name', 'age'], lineterminator='\n')
w.writeheader()
w.writerow({'name': 'Anna', 'age': 30})
w.writerow({'name': 'Bob'})
print(out.getvalue()) # → name,age / Anna,30 / Bob,
import csv
import io
w = csv.DictWriter(io.StringIO(), fieldnames=['name'])
try:
w.writerow({'name': 'X', 'mail': 'x@y'})
except ValueError as e:
print(e) # → dict contains fields not in fieldnames: 'mail'
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности