カテゴリ: Python 更新日: 2026/03/07

PythonでJSONファイルを読み書きする方法(jsonモジュールの使い方)

PythonでJSONファイルを読み書きする方法(jsonモジュールの使い方)
PythonでJSONファイルを読み書きする方法(jsonモジュールの使い方)

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonでデータをファイルに保存したいんですが、どんな形式で保存すればいいですか?」

先生

「よく使われるのがJSON(ジェイソン)という形式ですね。Pythonではjsonというモジュールを使って簡単に読み書きできますよ。」

生徒

「JSONってよく聞きますけど、どんなものなんですか?Pythonでどうやって扱うのか知りたいです!」

先生

「それでは、PythonでJSONファイルを読み書きする方法を、やさしく丁寧に説明していきましょう!」

1. JSON(ジェイソン)ファイルってなに?

1. JSON(ジェイソン)ファイルってなに?
1. JSON(ジェイソン)ファイルってなに?

JSONとは、JavaScript Object Notationの略で、データを「鍵(キー)」と「値(バリュー)」のペアで管理する、世界中で最も普及しているデータ形式の一つです。もともとはJavaScriptというプログラミング言語のために作られましたが、現在はPythonやPHP、Javaなど、ほぼすべての言語で標準的に使われています。

プログラミング未経験の方でも、次のシンプルな例を見ればイメージが湧きやすいはずです。例えば、ユーザー情報を保存する場合、JSONではこのように記述します。


{
    "name": "Taro",
    "age": 25,
    "is_student": false
}

JSONの特徴とメリット:

  • 人間が見ても分かりやすい: テキスト形式(文字)なので、メモ帳などで開いて内容を簡単に確認できます。
  • 構造化が得意: 「名前の中に苗字と名前がある」といった、階層(親子関係)を持たせた複雑なデータも表現できます。
  • 軽量で高速: 無駄な情報が少なくファイルサイズが小さいため、インターネット上でのデータのやり取りに最適です。

一見すると「ただの英語のリスト」のようですが、このシンプルなルールのおかげで、システム同士がスムーズに会話できるようになっています。Pythonでも、標準装備されているjsonモジュールを使えば、難しい設定なしですぐに読み書きを始めることが可能です。

2. jsonモジュールを使ってPythonでJSONを書き込む方法

2. jsonモジュールを使ってPythonでJSONを書き込む方法
2. jsonモジュールを使ってPythonでJSONを書き込む方法

Pythonで作成したデータを「.json」という形式のファイルとして保存する方法を解説します。これをプログラミング用語で「書き込み」「シリアライズ」と呼びます。

プログラミング未経験の方でも、以下のコードをコピーして実行するだけで、簡単にJSONファイルを作成できます。まずは全体の流れを見てみましょう。


import json

# 保存したいデータ(辞書形式)
user_data = {
    "name": "田中花子",
    "age": 30,
    "hobbies": ["読書", "旅行", "プログラミング"],
    "is_active": True
}

# ファイルへの書き込み実行
with open("data.json", "w", encoding="utf-8") as f:
    json.dump(user_data, f, ensure_ascii=False, indent=4)

print("JSONファイルへの保存が完了しました!")

知っておきたい5つのポイント解説:

  • import json:JSONを扱うための便利な機能を読み込みます(おまじないのようなものです)。
  • with open("...", "w", ...):「w」はWrite(書き込み)の略です。指定したファイル名で中身を書き換える準備をします。
  • json.dump():この1行で、PythonのデータをJSON形式に変換してファイルへ流し込みます。
  • ensure_ascii=Falseここが重要です! これを入れないと、日本語が「\u3042」のような記号に化けてしまいます。
  • indent=4:データに改行と段落(インデント)を加え、人間がメモ帳などで開いたときに見やすく整形します。

このコードを実行すると、同じフォルダ内に「data.json」が作成されます。Pythonのリストや辞書といったデータ構造をそのまま保存できるため、設定ファイルやログの保存に非常に便利です。

3. PythonでJSONファイルを読み込む方法

3. PythonでJSONファイルを読み込む方法
3. PythonでJSONファイルを読み込む方法

次は、さきほど保存したJSONファイルを読み込む方法です。読み込みとは、ファイルの内容をPythonで使えるようにすることです。


import json

with open("data.json", "r", encoding="utf-8") as f:
    loaded_data = json.load(f)

print(loaded_data)

ポイント解説:

  • "r"は読み込みモード(readの略)
  • json.load()を使うと、ファイルの中身をPythonの辞書(dictionary)として読み込めます
  • print()で内容を画面に表示できます

たとえば、保存した「Hanako」さんのデータが次のように表示されます。


{'name': 'Hanako', 'age': 30, 'hobbies': ['reading', 'travel']}

4. 読み込んだJSONのデータを扱うには?

4. 読み込んだJSONのデータを扱うには?
4. 読み込んだJSONのデータを扱うには?

読み込んだJSONデータは、Pythonの辞書(dict)として扱えるので、次のように値を取り出すことができます。


print(loaded_data["name"])       # → Hanako
print(loaded_data["age"])        # → 30
print(loaded_data["hobbies"][0]) # → reading

辞書とは、「鍵(キー)」と「値(バリュー)」のペアで情報を管理する仕組みで、loaded_data["name"]のように書くと、その「name」に対応する値を取り出せます。

5. JSONを扱うときの注意点

5. JSONを扱うときの注意点
5. JSONを扱うときの注意点

PythonでJSONファイルを読み書きする際は、次の点に注意しましょう。

  • ファイル名は必ず .json で終わるようにする(例:data.json)
  • ファイルを開くときは文字コードをutf-8に指定する
  • 辞書形式のデータしか保存できない(Pythonのクラスなどは保存不可)
  • 日本語を含む場合はensure_ascii=Falseを指定

また、JSONファイルは構造がカンタンなので、パソコン初心者でもメモ帳などで中身を確認することができます。

6. JSONとCSVの違いってなに?

6. JSONとCSVの違いってなに?
6. JSONとCSVの違いってなに?

PythonではCSVファイルもよく使われます。CSVは表形式(カンマ区切り)のデータで、Excelのような表に向いています。対してJSONは、複雑な構造(入れ子やリスト)をもつデータに向いています。

たとえば、1人の人に複数の趣味があるようなデータは、CSVよりもJSONの方が相性が良いです。

どちらを使うかは、データの性質や使う目的によって選ぶようにしましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New4
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonのクラスメソッドと静的メソッドの違いとは?初心者でも迷わない使い分けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.6
Java&Spring記事人気No6
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方