import csv writer = csv.DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
f
- файловый объект,fieldnames
- str
, заголовки полей CSV файла,restval=''
- значение поля для лишних/отсутствующих заголовков,extrasaction='raise'
- значение отсутствующего ключа имени поля,dialect='excel'
- - dialect='excel'
- строка с встроенным диалектом из списка csv.list_dialects()
или объект Dialect
,*args
- дополнительные аргументы, передаваемые в writer()
,**kwds
- дополнительные ключевые аргументы, передаваемые в writer()
.Класс DictWriter()
модуля csv
создает объект, который работает как csv.writer()
, но позволяет передавать строку с данными на запись как словарь, ключи которой задаются необязательным параметром fieldnames
.
Параметр fieldnames
представляет собой последовательность ключей, определяющих порядок значений в словаре, в котором метод writer.writerow()
записывает данные в файловый объект f
.
Необязательный параметр restval
указывает значение, которое будет записано, если в словаре отсутствует ключ в именах полей.
Если словарь, переданный методу writer.writerow()
, содержит ключ, не найденный в именах полей fieldnames
, необязательный параметр extrasaction
указывает, какое действие предпринять.
extrasaction
установлено значение 'raise'
- значение по умолчанию, то поднимается исключение ValueError
. extrasaction
установлено 'ignore'
, дополнительные значения в словаре игнорируются. Любые другие необязательные аргументы *args
или ключевые аргументы **kwds
передаются базовому экземпляру csv.writer()
.
Обратите внимание, что в отличие от класса csv.DictReader()
, аргумент fieldnames
(заголовки полей CSV файла) класса csv.DictWriter
является обязательным.
import csv with open('names.csv', 'w', newline='') as csvfile: fieldnames = ['first_name', 'last_name'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'}) writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'}) writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'}) # 13 # 13 # 16 # теперь читаем, что получилось with open('names.csv', newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row['first_name'], row['last_name']) # Baked Beans # Lovely Spam # Wonderful Spam