はじめに
Python組み込みの「json」モジュールを使って、辞書型のデータから、JSONファイルを出力する方法を解説します。
Python組み込みなのでインストール不要。使い方も簡単なので、サクッとJSONを扱いたい方はぜひご覧ください。
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど |
Python | 3.9.6 |
OS | Wiindows10 |
コードの概要
コードの概要は以下の通りです。JSONファイルから辞書型の変数にデータを読み取み、辞書内のデータを変更して、JSONファイルに書き込みます。
- JSONファイル → 辞書型の変数
- 辞書内のデータ(Email)を変更
- JSONファイルに書き込み
JSONファイル
以下のJSONファイルを読み込みます
{
"Email": "james@example.com",
"Active": true,
"CreatedDate": "2013-01-20T00:00:00Z",
"Roles": [
"User",
"Admin"
]
}
※ Pythonファイルと同じフォルダに保存してください.
実行結果
後述の「JSONを出力するコード」の実行結果です。
前述のJSONファイルの「Email」の部分が変更されて『output.json」という名前で出力されます。
{
"Email": "change-address@example.com",
"Active": true,
"CreatedDate": "2013-01-20T00:00:00Z",
"Roles": [
"User",
"Admin"
]
}
全体コード
「JSONを出力するコード」の全体です。ポイント部分は後述の「コードのポイント」で詳しく解説します。
import json
# ファイルのある場所でPythonを実行するコードです
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# JSONファイルを読み込みます
with open("test.json", "r") as file:
dict = json.load(file)
# Emailの要素を書き換えます
dict["Email"] = "change-address@example.com"
# jsonファイルに出力します
with open("output.json", "w") as outputFile:
json.dump(dict, outputFile, indent=2 )
コードのポイント
Pythonの実行場所を設定する
Pythonの実行場所を設定するコードです。
VisualStudioCodeなどで実行する場合、実行場所が「C:\Python」など、Pythonファイルのあるフォルダとは、別の場所を差すことがあります。
その場合「JSONファイルが見つからない」とエラーが出てしまうので、以下のコードで実行場所を「Pythonファイルと同じ場所」に設定しています。
# ファイルのある場所でPythonを実行するコードです
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
JSONファイルを開いて、辞書型に読み取る
open関数を使ってJSONファイルを「file」という変数に開きます。
jsonモジュールのload関数にfileを渡すと、JSONファイルが辞書型の変数として取得できます。
# JSONファイルを読み込みます
with open("test.json", "r") as file:
dict = json.load(file)
辞書内のデータ(Email)を変更する
辞書型の変数に取り込んだJSONファイルの内容(Email)を変更します。
辞書型の要素名には、JSONファイルの「キー」の名前がそのまま使われるので、辞書にアクセスする際は、JSONの「キー」名称を指定します。
# Emailの要素を書き換えます
dict["Email"] = "change-address@example.com
dumpで「JSONファイル」を書き込む
再度open関数を使って、出力用の「output.json」というファイルをオープンします。
jsonモジュールのdump関数に「辞書」と「ファイル」を渡すと、辞書をJSON形式に変換してファイルに出力してくれます。
# jsonファイルに出力します
with open("output.json", "w") as outputFile:
json.dump(dict, outputFile, indent=2 )
「indent=2」はJSONファイルを整形する引数です。指定しない場合、JSONファイルが1行で出力されます。
※ 整形の詳細は「こちらの記事」でまとめています。
まとめ
Python組み込みの「json」モジュールを使って、JSONファイルを出力する方法を解説しました。参考になればうれしいです。
お知らせ
3月号の『日経ソフトウェア』はPythonの特集。穴埋め式クイズで学ぶPython入門や、PythonでExcelを動かす方法などが特集されています。
jsonモジュールのその他の使い方
このブログではjsonモジュールの以下の内容も公開しています。興味のある方は以下の記事も是非ご覧ください。
jsonモジュールでJSONファイルを読み込む方法
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。