Python: красиво вывести JSON с отступами

Категория: Python · Язык: Python · Обновлено:

Чтобы красиво вывести JSON в Python, используйте json.dumps(data, indent=2, ensure_ascii=False). indent добавляет отступы, а ensure_ascii=False оставляет кириллицу читаемой вместо escape-последовательностей \u.....

Форматировать объект в строку

Python
import json

data = {"имя": "Ира", "активен": True}
formatted = json.dumps(data, indent=2, ensure_ascii=False)
print(formatted.splitlines()[1].strip())  # "имя": "Ира",

Если нужен только быстрый вывод в консоль, можно передать indent=2 прямо в json.dumps.

Записать отформатированный JSON в файл

Python
import json

data = {"имя": "Ира", "активен": True}
with open("settings.json", "w", encoding="utf-8") as file:
    json.dump(data, file, indent=2, ensure_ascii=False)

Вариант

Использование

json.dumps()

Получить JSON-строку

json.dump()

Записать JSON в открытый файл

indent=2

Читаемые отступы в 2 пробела

ensure_ascii=False

Сохранить Unicode-символы напрямую

Командная строка тоже умеет форматировать корректный JSON: python -m json.tool input.json output.json.

Как проверить, что JSON корректен?

Прочитайте его через json.load() или запустите python -m json.tool input.json. Форматирование не исправит некорректную структуру данных.