JSON-python

【jsonモジュール】Pythonで「JSONファイル」を出力する方法 【dump】

はじめに

Python組み込みの「json」モジュールを使って、辞書型のデータから、JSONファイルを出力する方法を解説します。

Python組み込みなのでインストール不要。使い方も簡単なので、サクッとJSONを扱いたい方はぜひご覧ください。

環境

この記事は以下の環境で作成しています。

環境 バージョンなど
Python 3.9.6
OS Wiindows10

楽天ブックス
¥1,980 (2022/09/21 10:02時点 | 楽天市場調べ)

~トレンドを知るには雑誌が最適です~

コードの概要

コードの概要は以下の通りです。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

JSONのKeyとValueの関係性を説明する図

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ファイルを出力する方法を解説しました。参考になればうれしいです。

UdemyでPythonのスキルに差をつける(無料あり)

Pythonのスキルを上げるには、Udemyの動画講座がおすすめです。

1講座 2440円程度で返金保証あり、無料講座も130本近く公開されています。アプリならオフラインで視聴できて、時間や場所にも縛られません。みんながやっていない今始めることで、スキルや評価に差をつけることができます。以下はPythonの無料講座の一覧です。

⇒ Pythonの講座一覧を見る

講座選びに迷ったらコレ

講座選びに迷ったら、以下がおすすめします。落ち着いた話し方とBGMで聴きやすく「ベストセラー」になっている講座です。

⇒ 現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル を見る

シリコンバレーの現役エンジニア酒井潤さんの講座です。基礎~応用まで盛りだくさんの講座です。シリコンバレー流の「動くだけでなく、他人も読めるコード」も一緒に学べます。

⇒ 独学で身につけるPython〜基礎編〜 を見る

京都大学・トヨタ自動車の経歴を持つ安井亮平さんの講座です。Pythonでの業務効率化方法がメインですが、Pythonの基礎から学べます。

jsonモジュールのその他の使い方

このブログではjsonモジュールの以下の内容も公開しています。興味のある方は以下の記事も是非ご覧ください。

jsonモジュールでJSONファイルを読み込む方法

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。