カテゴリ: Python 更新日: 2025/12/10

PythonでJSONファイルを読み書きする方法!初心者でもわかるjsonモジュールの使い方

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

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

生徒

「先生!Pythonでデータを保存したり読み込んだりする方法を知りたいです。テキストファイル以外にも、よく“JSON”って聞くんですけど、あれって何ですか?」

先生

「良い質問だね。JSON(ジェイソン)は“JavaScript Object Notation”の略で、データを整理して保存するための形式なんだ。Pythonでもとてもよく使われるよ。」

生徒

「なるほど!でも、どうやってPythonで扱うんですか?」

先生

「Pythonにはjsonという標準モジュールがあるから、それを使えば簡単にJSONファイルを読み書きできるんだ。実際に見ていこう!」

1. JSONとは?どんなときに使うの?

1. JSONとは?どんなときに使うの?
1. JSONとは?どんなときに使うの?

JSON(ジェイソン)は、データを「人間にも読みやすく、コンピュータにも扱いやすい」形で表現するためのフォーマットです。たとえば、アプリの設定ファイルやWebサービスのデータ通信(API)などで頻繁に使われます。

見た目は辞書(dict)やリスト(list)に似ています。実際にPythonの辞書をJSON形式に変換して保存したり、逆にJSONファイルを読み込んで辞書に戻したりできます。

JSONの基本的な構造は次のようになります。


{
    "name": "Taro",
    "age": 25,
    "hobby": ["music", "travel"]
}

このようにキーと値をセットで管理するため、複数の情報を一つのファイルにまとめられます。

2. PythonでJSONファイルを読み込む(json.load)

2. PythonでJSONファイルを読み込む(json.load)
2. PythonでJSONファイルを読み込む(json.load)

Pythonでは、JSONファイルを読み込むときにjson.load()関数を使います。この関数は、ファイルからJSONデータを読み取り、Pythonの辞書型に変換してくれます。


import json

# JSONファイルを読み込む
with open("data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

print(data)
print(type(data))

{'name': 'Taro', 'age': 25, 'hobby': ['music', 'travel']}
<class 'dict'>

ポイント:
ファイルを開くときにwith open()構文を使うと、自動でファイルを閉じてくれるので安全です。JSONは文字コードが重要なので、encoding="utf-8"を指定しておくのもおすすめです。

3. PythonのデータをJSONファイルに保存する(json.dump)

3. PythonのデータをJSONファイルに保存する(json.dump)
3. PythonのデータをJSONファイルに保存する(json.dump)

今度はPythonの辞書をJSON形式に変換してファイルに書き出してみましょう。これにはjson.dump()関数を使います。


import json

# 保存したいデータ
user = {
    "name": "Hanako",
    "age": 22,
    "hobby": ["reading", "cooking"]
}

# JSONファイルとして保存
with open("user.json", "w", encoding="utf-8") as f:
    json.dump(user, f, ensure_ascii=False, indent=4)

print("ファイルを保存しました。")

ファイルを保存しました。

ここでのポイント:

  • ensure_ascii=False:日本語が文字化けしないように設定。
  • indent=4:インデント(字下げ)をつけて見やすく整形。

保存されたuser.jsonを開くと、次のように整ったJSONファイルができています。


{
    "name": "Hanako",
    "age": 22,
    "hobby": [
        "reading",
        "cooking"
    ]
}

4. JSON文字列を直接扱う(json.loads / json.dumps)

4. JSON文字列を直接扱う(json.loads / json.dumps)
4. JSON文字列を直接扱う(json.loads / json.dumps)

ファイルを使わず、Pythonの中でJSON形式の文字列を処理したい場合は、json.loads()json.dumps()を使います。

JSON文字列 → Pythonの辞書に変換:


import json

json_str = '{"title": "Python入門", "price": 1800}'
data = json.loads(json_str)

print(data)
print(data["title"])

{'title': 'Python入門', 'price': 1800}
Python入門

Pythonの辞書 → JSON文字列に変換:


book = {"title": "AIの基本", "price": 2500}
json_str = json.dumps(book, ensure_ascii=False, indent=2)
print(json_str)

{
  "title": "AIの基本",
  "price": 2500
}

このようにloads()dumps()を使えば、ファイルを介さずにデータを簡単にやり取りできます。

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

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

初心者がつまずきやすいポイントも押さえておきましょう。

  • コメントは書けない: JSON形式ではコメント(#や//など)が使えません。設定ファイルに説明を入れたい場合は別の方法で。
  • データ型の違いに注意: JSONでは、タプルやセットはそのままでは保存できません。必要に応じてリストに変換します。
  • 文字化け対策: 常にensure_ascii=Falseencoding="utf-8"をセットで使うと安心です。

6. 実践例:複数データをまとめて保存・読み込み

6. 実践例:複数データをまとめて保存・読み込み
6. 実践例:複数データをまとめて保存・読み込み

最後に、実際のアプリでよくある「複数のデータをまとめてJSONで管理する」例を見てみましょう。


import json

users = [
    {"id": 1, "name": "Taro"},
    {"id": 2, "name": "Hanako"},
    {"id": 3, "name": "Ken"}
]

# 保存
with open("users.json", "w", encoding="utf-8") as f:
    json.dump(users, f, ensure_ascii=False, indent=4)

# 読み込み
with open("users.json", "r", encoding="utf-8") as f:
    loaded = json.load(f)

for u in loaded:
    print(u["name"])

Taro
Hanako
Ken

このようにJSONを使うと、複数のユーザー情報を1つのファイルに安全に保存できます。プログラムでのデータ管理がとても楽になりますね。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説