json.tool の基本
Python 2.6 以降には json
モジュールが標準搭載されていて、これはコマンドラインからも便利に利用することができます。
下記は、json.tool モジュール を使って JSON 形式のテキスト出力を、きれいに整形しなおして出力するワンライナーの例です。
$ python -mjson.tool input.json
# あるいは
$ cat input.json | python -mjson.tool
ここでは、次のような JSON ファイルを使って試してみます。 スペースはわざとぐちゃぐちゃに入れています。
キー名でソートして出力する (–sort-keys)
Python 3.7 以降で、キーの順序は入力ファイルのものが保持されるようになりました(内部的に辞書オブジェクト (dict
) のキー挿入順序が保持されるようになりました)。
キー順序をアルファベット順にソートして出力したいときは、--sort-keys
オプションを指定します。
インデントサイズを指定する (–indent=N)
バージョン 3.9 以降では、--indent
オプションで、インデントサイズの調整などもできるようになっています。
インデントや改行なしで出力する (–compact)
余計なスペースや改行を取り除いて、1 行でコンパクトに出力するには、--compact
オプションを使用します。
プログラムへの入力にしか使わない JSON データは、このように圧縮されていると効率的です。