Сообщить об ошибке.

Класс DictReader() модуля csv в Python

Читать CSV файл как список словарей

Синтаксис:

import csv

reader = csv.DictReader(f, fieldnames=None, restkey=None,
                        restval=None, dialect='excel', 
                        *args, **kwds)

Параметры:

Возвращаемое значение:

Описание:

Класс 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'}