管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

jsonを整形して表示したい(python)

jsonを手軽に整形表示したかったのでメモ。
pythonのjson.toolモジュールを使えば、jsonを整形して表示可能。
(json.toolはpython2.6以降標準モジュールだそうです)

確認環境

[ec2-user@ip-*-*-*-* ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
[ec2-user@ip-*-*-*-* ~]$ python --version
Python 2.7.16

どうすればよいのか

「json.tool」モジュールを使う
(json.toolはpython2.6以降標準モジュールだそうです)

# 標準出力を整形するには
[ec2-user@ip-*-*-*-* ~]$ echo '{"name": "John Smith", "age": 33}' | python -m json.tool
{
    "age": 33,
    "name": "John Smith"
}

# ファイルを整形するには
[ec2-user@ip-*-*-*-* ~]$ cat sample.json
{"name": "John Smith", "age": 33}
[ec2-user@ip-*-*-*-* ~]$ python -m json.tool sample.json
{
    "age": 33,
    "name": "John Smith"
}

json.toolが入っていることを確認するには

python -c "help('modules')"

[ec2-user@ip-*-*-*-* ~]$ python -c "help('modules')" | grep json
HTMLParser          cffi                json                select
IN                  cfnbootstrap        jsonpatch           sets
MimeWriter          cgi                 jsonpointer         setuptools
PIL                 cgitb               jsonschema          sgmllib
TYPES               code                liblzma             simplejson
_json               dumbdbm             oauthlib            termios

参考にしました