0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python で JSON をきれいにフォーマットする方法

Last updated at Posted at 2024-07-31

JSON をフォーマットする手軽な方法として Python に標準装備されている json.tool が知られていますが、この機能に更新が入るようなので記事も更新しました。

何が変わる?

-m json.tool ではなく -m json からも起動するようになるようです。
また、-m json.toolからもこれまで同様に起動できるようです。

この変更の提案者の方が json.tool の歴史的経緯を調査したブログです。
この記事はこちらを紹介するために更新したようなものです。興味深いので読んでみてください。

Reddit における議論:

基本的な使い方

-msys.path が指定するディレクトリに置かれたモジュールを呼び出すためのオプションです。

$ echo '{"name":"Alice","job":"Engineer","id":"101"}' | python3 -m json.tool
# {
#     "name": "Alice",
#     "job": "Engineer",
#     "id": "101"
# }

日本語を使うと文字がエスケープされることに注意

$ echo '{"name":"花子","job":"営業","id":"201"}' | python3 -m json.tool
# {
#     "name": "\u82b1\u5b50",
#     "job": "\u55b6\u696d",
#     "id": "201"
# }

オプション

  • 日本語がエスケープされないようにする --no-ensure-ascii
$ echo '{"name":"花子","job":"営業","id":"201"}' | python3 -m json.tool --no-ensure-ascii
# {
#     "name": "花子",
#     "job": "営業",
#     "id": "201"
# }

  • キーをソートする --sort-keys
$ echo '{"name":"Alice","job":"Engineer","id":"101"}' | python3 -m json.tool --sort-keys
# {
#     "id": "101",
#     "job": "Engineer",
#     "name": "Alice"
# }
  • インデントの数を変更する --indent N
$ echo '{"name":"Alice","job":"Engineer","id":"101"}' | python3 -m json.tool --indent 12
# {
#             "name": "Alice",
#             "job": "Engineer",
#             "id": "101"
# }
  • ミニファイする --compact
$ echo '{"name":"Alice","job":"Engineer","id":"101"}' | python3 -m json.tool --compact
# {"name":"Alice","job":"Engineer","id":"101"}

Link

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?