はじめに
Python組み込みの「json」モジュールを使って、辞書型のデータから、「JSON文字列」「インデントなどで整形したJSON文字列」を出力する方法を解説します。
Python組み込みなのでインストール不要。使い方も簡単なので、サクッとJSONを扱いたい方はぜひご覧ください。
環境
環境 | バージョンなど |
Python | 3.9.6 |
OS | Wiindows10 |

プログラミングのトレンドを知るには雑誌が最適です
プログラム概要
今回のプログラムの概要は以下の通りです。
- 辞書を作成する
- 辞書からJSON文字列を作成する
実行結果
後述の「JSON文字列を出力するコード」の実行結果です。辞書型の変数から、JSON文字列を作成して表示しています。
indentオプションを指定することで、改行やインデント付きのPythonモジュールも作成することができます。
{"Email": "james@example.com", "Active": true, "CreatedDate": "2013-01-20T00:00:00Z", "Roles": ["User", "Admin"]}
{
"Email": "james@example.com",
"Active": true,
"CreatedDate": "2013-01-20T00:00:00Z",
"Roles": [
"User",
"Admin"
]
}
全体コード
全体コードは以下の通りです。詳細な内容は後述する「コードのポイント」で解説します。
import json
# 辞書を作成します
dict = {
"Email": "james@example.com",
"Active": True,
"CreatedDate": "2013-01-20T00:00:00Z",
"Roles" : ["User", "Admin"]
}
# 辞書からJSON文字列を作成します
jsonString = json.dumps(dict)
# 改行とインデント付きのJSON文字列を作成します
jsonIndent = json.dumps(dict, indent=2)
# JSON文字列の表示です
print(jsonString)
print(jsonIndent)
コードのポイント
JSON文字列の出力
jsonモジュールのdumps関数を使って、辞書から「JSON文字列」を出力します。
dumps関数はデフォルトで「改行なしの一行のJSON」を出力します。インデントや改行など、人にやさしいJSON文字列を出力する場合は、「indent」にプラスの整数を指定してください。
# 辞書からJSON文字列を作成します
jsonString = json.dumps(dict)
# 改行とインデント付きのJSON文字列を作成します
jsonIndent = json.dumps(dict, indent=2)
※ 「0」を設定すると、改行だけされたJSON文字列が出力されます。
日本語の文字化け
dumps関数では日本語の変換の際に、文字化け(Unicodeエスケープ)み見える変換を行う場合があります。
日本語を使う場合の設定方法は、こちらの記事をご覧ください。
まとめ
Python組み込みの「json」モジュールを使って、辞書型のデータから、JSON文字列を出力する方法を解説しました。参考になればうれしいです。
UdemyでPythonのスキルに差をつける
Pythonのスキルを上げるには、Udemyの動画講座がおすすめです。
1講座 2440円程度で返金保証あり、無料講座も130本近く公開されています。アプリならオフラインで視聴できて、時間や場所にも縛られません。みんながやっていない今始めることで、スキルや評価に差をつけることができます。以下はPythonの無料講座の一覧です。
おすすめ講座
Pythonの講座の中で、特におすすめなのは以下の講座です。内容はもちろんですが、落ち着いた話し方とBGMで講座としても聴きやすい作りになっています。
業務改善をテーマにPythonの基礎を学ぶ
京都大学・トヨタ自動車を経て独立された、安井亮平さんの講座です。Pythonを使った業務効率化/自動化などをテーマにPythonの基礎が学べます。
⇒ 業務効率化・自動化をテーマにPythonの基礎を学ぶにはこちら
シリコンバレー流コードスタイル
米シリコンバレーの現役エンジニア、酒井潤さんの講座です。Pythonの基礎~応用を、シリコンバレー流の「動くだけでなく、他人も読めるコード」で解説。みんなよりちょっと進んだコード」が書けるようになります。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。