Вы читаете products.csv через csv.DictReader(f) и получили строку row. Как правильно взять значение столбца price?
A
row["price"]: доступ по имени столбца через ключ словаря у csv.DictReaderB
row[1]: доступ по числовому индексу столбца, как в обычном list или csv.readerC
row.price: доступ как к атрибуту объекта через точку, через имя поляD
row.get(1): словарный метод .get() с числовым индексом вместо имени столбцаПравильный ответ. У
csv.DictReader доступ к полям идёт по имени столбца как к ключу словаря.Разбор
csv.DictReader возвращает для каждой строки словарь, где ключи — названия столбцов из заголовка. Поэтому значение поля price берут как row["price"]. Числовой индекс работает у обычного csv.reader, но не у DictReader. Помните, что значения приходят строками, и для расчётов цену часто нужно преобразовать, например через float(...).
Проверь себя · 1/3разбор после ответа
Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить
open("report.csv", "w"), когда report.csv уже существует?Ещё вопросы по теме «Работа с файлами: JSON и CSV»
- Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить `open("report.csv", "w")`, когда `report.csv` уже существует?
- Что гарантирует конструкция `with open("data.csv", "r") as f:` при чтении файла в Python?
- Есть строка `text = '{"user_id": 7, "active": true}'`. Что вернёт `json.loads(text)`?
- Вы читаете CSV с заголовком через `csv.DictReader(f)`. Что представляет собой `row` внутри цикла `for row in csv.DictReader(f):`?
- Вы хотите дописывать строки в файл лога `errors.log`, не удаляя то, что уже записано. Как открыть файл?
- Все вопросы по «Работа с файлами: JSON и CSV» →