Форматирование вывода JSON

Допустим, у нас есть следующие данные:

 >>> data = {"cats": [{"name": "Tubbs", "color": "white"}, {"name": "Pepper", "color": "black"}]} 

Просто сброс этого как JSON здесь не делает ничего особенного:

 >>> print(json.dumps(data))
{"cats": [{"name": "Tubbs", "color": "white"}, {"name": "Pepper", "color": "black"}]} 

Установка отступа, чтобы получить более красивый вывод

Если мы хотим , красивая печать, мы можем установить indent размер:

 >>> print(json.dumps(data, indent=2))
{
  "cats": [
    {
      "name": "Tubbs",
      "color": "white"
    },
    {
      "name": "Pepper",
      "color": "black"
    }
  ]
} 

Сортировка ключей по алфавиту для получения последовательного вывода

По умолчанию порядок ключей в выводе не определен. Мы можем получить их в алфавитном порядке, чтобы всегда получать одинаковый вывод:

 >>> print(json.dumps(data, sort_keys=True))
{"cats": [{"color": "white", "name": "Tubbs"}, {"color": "black", "name": "Pepper"}]} 

Избавляемся от пробелов, чтобы получить компактный вывод

Мы могли бы хотеть , чтобы избавиться от ненужных пространств, которое осуществляется путем установки разделителей строк , отличные от значения по умолчанию ', ' и ': ' :

 >>>print(json.dumps(data, separators=(',', ':')))
{"cats":[{"name":"Tubbs","color":"white"},{"name":"Pepper","color":"black"}]}