Вопросы по теме «Работа с файлами: JSON и CSV»

Чтение и запись CSV, парсинг JSON, контекстный менеджер with open — повседневные задачи аналитика. На собеседовании могут попросить прочитать CSV без pandas, распарсить вложенный JSON или объяснить разницу между json.load и json.loads. Эти навыки показывают, что кандидат не привязан к одной библиотеке.

Всего в этом разделе 20 вопросов. Каждый — с правильным ответом и кратким разбором теории. Разбито на 4 части по 5 вопросов.

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrameСинтаксис и типы данных

Вопросы 15 из 20

1Вы читаете `products.csv` через `csv.DictReader(f)` и получили строку `row`. Как правильно взять значение столбца `price`?
A`row["price"]`
B`row[1]`
C`row.price`
D`row.get(1)`
Ответ: У `csv.DictReader` доступ к полям идёт по имени столбца.

`csv.DictReader` возвращает для каждой строки словарь, где ключи — названия столбцов из заголовка. Поэтому значение поля `price` берут как `row["price"]`. Помните, что значения приходят строками, и для расчётов цену часто нужно преобразовать, например через `float(...)`.

2Вы хотите дописывать строки в файл лога `errors.log`, не удаляя то, что уже записано. Как открыть файл?
A`open("errors.log", "a")`
B`open("errors.log", "w")`
C`open("errors.log", "r")`
D`open("errors.log", "r+")`
Ответ: Режим `a` добавляет данные в конец файла.

Если нужно сохранять историю и дописывать новые строки, используйте режим `a` (append): `open("errors.log", "a")`. В этом режиме запись идёт в конец, а если файла ещё нет, он будет создан. Режим `w` перезапишет файл (очистит), а режим `r` предназначен только для чтения.

3Есть словарь `cfg = {"threshold": 0.8}`. После `s = json.dumps(cfg)` что хранится в `s`?
APython-словарь `cfg` (тип `dict`)
BJSON-строка (тип `str`)
CСписок ключей `['threshold']`
DОткрытый файл `cfg.json`
Ответ: `json.dumps()` возвращает строку JSON.

`json.dumps(cfg)` сериализует Python-объект и возвращает JSON в виде строки (тип `str`). Это удобно, когда вы хотите сохранить результат в файл через `f.write(...)` или отправить по сети. Обратная операция — `json.loads(...)`, которая принимает строку JSON и возвращает объект (например, `dict`).

4Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить `open("report.csv", "w")`, когда `report.csv` уже существует?
AФайл будет открыт на запись и очищен: старое содержимое удалится, запись пойдёт с начала
BНовые данные допишутся в конец файла, старое содержимое останется
CБудет выброшено исключение, потому что файл уже существует
DФайл откроется только для чтения, записать данные не получится
Ответ: Режим `w` создаёт файл для записи или очищает существующий.

Если открыть файл через `open("report.csv", "w")`, Python откроет его в режиме записи. Если файл уже существует, его содержимое будет обнулено (перезаписано с начала). Этот режим подходит для «пересборки» отчёта с нуля. Если нужно дописывать в конец, используют режим `a`.

5Вы используете `csv.reader` для чтения файла. Что такое `row` в цикле `for row in csv.reader(f):`?
AСловарь, где ключи — названия столбцов
BОдна строка файла целиком (тип `str`)
CЧисло — номер строки в файле
DСписок строковых значений по столбцам (поля строки)
Ответ: `csv.reader` возвращает каждую строку как список полей.

Итерация по `csv.reader(f)` возвращает каждую строку CSV как список значений по столбцам. Обычно все элементы — строки, поэтому для аналитики часто требуется явное преобразование типов (например, `int(...)` или `float(...)`). Если нужен доступ по имени столбца, вместо `csv.reader` выбирают `csv.DictReader`.

1234

Хотите тренировать интерактивно?

В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.

Тренировать в Telegram

Другие темы: Python

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrameСинтаксис и типы данных