Чтение и запись CSV, парсинг JSON, контекстный менеджер with open — повседневные задачи аналитика. На собеседовании могут попросить прочитать CSV без pandas, распарсить вложенный JSON или объяснить разницу между json.load и json.loads. Эти навыки показывают, что кандидат не привязан к одной библиотеке.
Всего в этом разделе 20 вопросов. Каждый — с правильным ответом и кратким разбором теории. Разбито на 4 части по 5 вопросов.
`csv.DictReader` возвращает для каждой строки словарь, где ключи — названия столбцов из заголовка. Поэтому значение поля `price` берут как `row["price"]`. Помните, что значения приходят строками, и для расчётов цену часто нужно преобразовать, например через `float(...)`.
Если нужно сохранять историю и дописывать новые строки, используйте режим `a` (append): `open("errors.log", "a")`. В этом режиме запись идёт в конец, а если файла ещё нет, он будет создан. Режим `w` перезапишет файл (очистит), а режим `r` предназначен только для чтения.
`json.dumps(cfg)` сериализует Python-объект и возвращает JSON в виде строки (тип `str`). Это удобно, когда вы хотите сохранить результат в файл через `f.write(...)` или отправить по сети. Обратная операция — `json.loads(...)`, которая принимает строку JSON и возвращает объект (например, `dict`).
Если открыть файл через `open("report.csv", "w")`, Python откроет его в режиме записи. Если файл уже существует, его содержимое будет обнулено (перезаписано с начала). Этот режим подходит для «пересборки» отчёта с нуля. Если нужно дописывать в конец, используют режим `a`.
Итерация по `csv.reader(f)` возвращает каждую строку CSV как список значений по столбцам. Обычно все элементы — строки, поэтому для аналитики часто требуется явное преобразование типов (например, `int(...)` или `float(...)`). Если нужен доступ по имени столбца, вместо `csv.reader` выбирают `csv.DictReader`.
В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать в Telegram