← Все вопросы
Как читать CSV с заголовком, чтобы обращаться к колонкам по имени?
13
В csv первая строка — заголовки (name, age, city). Через обычный csv.reader приходится помнить, что age это row[1], и легко ошибиться, если поменяется порядок столбцов. Можно обращаться по названию колонки?
2 ответа
24
Да, для этого есть csv.DictReader — он берёт первую строку как заголовки и отдаёт каждую строку словарём:
import csv
with open('people.csv', encoding='utf-8', newline='') as f:
reader = csv.DictReader(f)
for row in reader:
print(row['name'], row['age'])
Теперь порядок столбцов не важен — обращаешься по имени. Обрати внимание на newline='' при открытии: это рекомендованный способ, иначе на Windows могут появляться пустые строки между записями.
Елена Соколова Значения всегда строки — age придётся int() самому · 14 месяцев назад
Санчо Панчо DictReader спас, перестал считать индексы пальцем по экрану · 14 месяцев назад
4
csv.DictReader.
Ваш ответ
Войдите, чтобы ответить на вопрос.