import csv reader = csv.DictReader(f, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
f
- файловый объект,fieldnames=None
- str
, заголовки полей CSV файла,restkey=None
- заголовок столбца для лишних полей CSV файла,restval=None
- значение поля лишних заголовков,dialect='excel'
- строка с встроенным диалектом из списка csv.list_dialects()
или объект Dialect
,*args
- дополнительные аргументы, передаваемые в reader()
,**kwds
- дополнительные ключевые аргументы, передаваемые в reader()
.Класс DictReader()
модуля csv
создает объект, который работает как обычный reader()
, но отображает информацию о каждой строке в качестве словаря dict
, ключи которого задаются необязательным параметром fieldnames
.
Параметр fieldnames
является последовательностью. Если имена полей опущены, то в качестве их значений будет использоваться первая строка файлового объекта f
. Независимо от того, как определены имена полей, словарь сохраняет их первоначальный порядок.
Если в строке CSV файла f
больше полей, чем имен полей fieldnames
, оставшиеся данные помещаются в список и сохраняются с именем поля, заданным параметром restkey
- по умолчанию None
.
Если в непустой строке CSV файлового объекта f
меньше полей, чем имен полей fieldnames
, пропущенные значения заполняются значением restval
- по умолчанию None
.
Все остальные необязательные аргументы *args
или ключевые аргументы **kwds
передаются в базовый экземпляр reader()
.
import csv # сначала запишем файл 'names.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 # читаем CSV файл как список словарей, ключи # которого заданы первой строкой файла 'names.csv' with open('names.csv', newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row['first_name'], row['last_name']) # Eric Idle # John Cleese >>> print(row) # {'first_name': 'John', 'last_name': 'Cleese'}