← Все вопросы

Как читать CSV с заголовком, чтобы обращаться к колонкам по имени?

Задан 14 месяцев назад668 просмотров2 ответа
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.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект