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