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