Python で JSON ファイルをきれいに印刷する方法

  1. json.dumps メソッド
  2. pprint メソッド

JSON ファイルを文字列に読み込むか「ロード」すると、JSON ファイルの内容が乱雑になる可能性があります。

たとえば、1つの JSON ファイルでは、

[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]

「ロード」してから「印刷」する場合。

import json

with open(r'C:\test\test.json', 'r') as f:
    json_data = json.load(f)
    
print(json_data)
[{'foo': 'Etiam', 'bar': ['rhoncus', 0, '1.0']}]

結果は、通常見られる標準形式に比べて読みやすくなっています。

[
  {
    "foo": "Etiam",
    "bar": [
      "rhoncus",
      0,
      "1.0"
    ]
  }
]

json.dumps メソッド

json.dumps() 関数は、指定された obj を JSON 形式の str にシリアル化します。

指定されたインデントレベルで obj をきれいに出力するには、json.dumps() 関数のキーワードパラメーターindent に正の整数を与える必要があります。 ident が 0 に設定されている場合、新しい行のみが挿入されます。

import json

with open(r'C:\test\test.json', 'r') as f:
    json_data = json.load(f)
    
print(json.dumps(json_data, indent=2))
[
  {
    "foo": "Etiam",
    "bar": [
      "rhoncus",
      0,
      "1.0"
    ]
  }
]

pprint メソッド

pprint モジュールは Python データ構造をきれいに印刷する機能を提供します。 pprint.pprint は Python オブジェクトをストリームにきれいに出力し、その後に改行が続きます。

import json
import pprint

with open(r'C:\test\test.json', 'r') as f:
    json_data = f.read()
    json_data = json.loads(json_data)
    
pprint.pprint(json_data)

JSON ファイルのデータコンテンツはきれいに印刷されます。また、indent パラメーターを割り当てることでインデントを定義することもできます。

pprint.pprint(json_data, indent=2)
注意

pprint は一重'と二重引用符"を同じように扱いますが、JSON"のみを使用するため、pprintedJSON ファイルの内容をファイルに直接保存することはできません。

そうしないと、新しいファイルは有効な JSON 形式として解析されません。

comments powered by Disqus