← Все вопросы

Как сохранить данные в JSON и потом загрузить обратно?

Задан 24 дня назад1.2к просмотров3 ответа
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, кортежи (станут списками) — либо не сохранятся, либо изменятся. Для своих классов нужен кастомный энкодер.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект