Python格式化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"}]}