В файле events.json лежит JSON-текст. Как корректно получить Python-объект из этого файла?

Aobj = json.dumps(open('events.json', 'r', encoding='utf-8')): dumps сериализует объект в строку
Bwith open('events.json', 'r', encoding='utf-8') as f: obj = json.loads(f.read()): читаем текст и парсим
Cobj = json.loads(open('events.json', 'r', encoding='utf-8')): loads ждёт строку, а не файловый объект
Dwith open('events.json', 'w', encoding='utf-8') as f: obj = json.loads(f.read()): открытие в w стирает файл
Правильный ответ. Сначала читаем текст из файла, затем разбираем его через json.loads().

Разбор

json.loads() ожидает строку с JSON-текстом. Поэтому открываем файл в режиме чтения r, забираем содержимое через f.read(), и только потом вызываем json.loads(...). Контекстный менеджер with гарантирует закрытие файла. Вариант с json.dumps неверен: эта функция, наоборот, превращает Python-объект в строку. Открытие в режиме w уничтожит исходный файл.

Проверь себя · 1/3разбор после ответа
Что произойдёт при выполнении вызова open("missing.csv", "r"), если файла missing.csv не существует в текущей директории?
Тренировать Python в Telegram

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