← Все вопросы
Как сохранить данные в JSON и потом загрузить обратно?
17
У меня словарь с настройками, хочу сохранить его в файл и при следующем запуске прочитать. Как это делается через модуль json?
3 ответа
26
✓ Принятый ответ — помог автору
Запись через json.dump, чтение через json.load:
import json
data = {'name': 'Аня', 'level': 5}
# сохранить
with open('config.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# загрузить
with open('config.json', encoding='utf-8') as f:
data = json.load(f)
Два важных параметра при записи: ensure_ascii=False, чтобы кириллица сохранялась как буквы, а не \u0430..., и indent=2 для читаемого форматирования. Не путай: dump/load работают с файлом, а dumps/loads (с буквой s) — со строкой.
Снежана Фролова ensure_ascii=False — спас от \u кракозябр 🙏 · 20 дней назад
Иван Сергеев разница dump/dumps наконец уложилась · 13 дней назад
8
json.dump — сохранить, json.load — загрузить. Главное не перепутать с dumps/loads, там s = string.
5
Только помни, что json умеет не все типы. set, datetime, кортежи (станут списками) — либо не сохранятся, либо изменятся. Для своих классов нужен кастомный энкодер.
Ваш ответ
Войдите, чтобы ответить на вопрос.