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

Pythonの辞書をJSONに変換する方法!json.dumps()・json.loads()をやさしく解説

Pythonの辞書をJSONに変換する方法!json.dumps()・json.loads()をやさしく解説
Pythonの辞書をJSONに変換する方法!json.dumps()・json.loads()をやさしく解説

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

生徒

「Pythonの辞書をそのままファイルに保存したいんですが、そのままだと難しいって聞きました。どうすればいいんですか?」

先生

「Pythonの辞書は便利ですが、そのまま保存するとパソコンや他のアプリで読めないことが多いんです。そこで使うのがJSON(ジェイソン)という形式です。」

生徒

「JSONって何ですか?」

先生

「JSONはデータをテキストとして保存するための形式で、ほとんどのプログラミング言語で扱えます。Pythonの辞書をJSONに変換したり、JSONから辞書に戻したりするのにjsonモジュールを使いますよ。」

生徒

「どうやって変換するんですか?」

先生

「それでは、json.dumps()json.loads()の使い方を順番に説明しましょう!」

1. JSON(ジェイソン)とは?

1. JSON(ジェイソン)とは?
1. JSON(ジェイソン)とは?

JSONは「JavaScript Object Notation」の略で、データを文字列で表現する決まりごとです。見た目は辞書に似ていて、{"キー": "値"}のように書きます。

JSONはテキストなので、ファイルに書き込んだり、ネットで送ったりするのに便利です。Pythonの辞書はこのJSON形式に変換できるため、他のアプリや言語とやり取りしやすくなります。

2. json.dumps()で辞書をJSON文字列に変換する

2. json.dumps()で辞書をJSON文字列に変換する
2. json.dumps()で辞書をJSON文字列に変換する

json.dumps()は、Pythonの辞書をJSON形式の文字列に変換する関数です。dumpsは「dump string」の略で、「文字列にする」という意味です。


import json

data = {"名前": "太郎", "年齢": 25, "趣味": ["読書", "映画"]}

json_str = json.dumps(data, ensure_ascii=False)  # 日本語を正しく表示するためにensure_ascii=Falseを使う
print(json_str)

{"名前": "太郎", "年齢": 25, "趣味": ["読書", "映画"]}

このように辞書が文字列として扱えるようになります。これをファイルに書き込んだり、ネットに送ったりできます。

ポイント: ensure_ascii=Falseを使うと日本語がそのまま見える形で出力されます。これを入れないと日本語がUnicode(例:「\u8aad\u66f8」)のように表示されます。

3. json.loads()でJSON文字列を辞書に変換する

3. json.loads()でJSON文字列を辞書に変換する
3. json.loads()でJSON文字列を辞書に変換する

json.loads()は、JSON形式の文字列をPythonの辞書に変換する関数です。loadsは「load string」の意味で、「文字列を読み込んで変換する」ことを指します。


json_str = '{"名前": "太郎", "年齢": 25, "趣味": ["読書", "映画"]}'

data = json.loads(json_str)
print(data)
print(type(data))

{'名前': '太郎', '年齢': 25, '趣味': ['読書', '映画']}
<class 'dict'>

このようにJSON文字列から元の辞書に戻せます。戻した辞書は普通の辞書と同じように使えます。

4. JSON変換でよくある疑問と注意点

4. JSON変換でよくある疑問と注意点
4. JSON変換でよくある疑問と注意点

Q1. なぜJSONに変換する必要があるの?
Pythonの辞書はPythonだけの形式なので、そのまま他のプログラムやファイルで使えません。JSONは多くの環境で読み書きできるので、データのやり取りが簡単になります。

Q2. どんなデータがJSONにできるの?
文字列、数値、リスト、辞書(ネストもOK)など基本的なデータは変換できます。ただし、Python独自の型(例:setや関数など)は直接変換できません。

Q3. ファイルに保存するときはどうするの?
JSON文字列をファイルに書き込めばOKです。逆にファイルから読み込んで辞書に戻すこともできます。ファイル操作は別途json.dump()json.load()を使います。

5. JSON変換の使い方

5. JSON変換の使い方
5. JSON変換の使い方
  • json.dumps()で辞書をJSON文字列に変換する
  • json.loads()でJSON文字列を辞書に戻す
  • 日本語を扱うときはensure_ascii=Falseを使うと見やすい
  • JSONはデータ交換や保存に便利なテキスト形式

これらの方法を使いこなすことで、Pythonの辞書データを安全に保存・共有できるようになります。

まとめ

まとめ
まとめ

Pythonの辞書とJSON変換を振り返って理解を深めよう

今回の記事では、Pythonの辞書(dictionary)をJSON形式に変換する方法について、基礎から丁寧に学びました。 Pythonの辞書は、キーと値を使ってデータを管理できる非常に便利なデータ構造ですが、そのままでは ファイルに保存したり、他のプログラミング言語やアプリケーションとデータをやり取りしたりすることが難しい場合があります。 そこで登場するのがJSONというデータ形式です。

JSONはテキスト形式でデータを表現できるため、環境や言語を問わず扱いやすく、 Pythonの辞書構造とも非常に相性が良いのが特徴です。 辞書をJSONに変換することで、設定ファイルの保存、Web APIでのデータ送受信、 ログデータの記録、外部システムとの連携など、実務でも幅広く活用できるようになります。

json.dumps()とjson.loads()の役割を整理

辞書をJSONに変換する際に使うのが json.dumps() です。 この関数は、Pythonの辞書やリストなどのデータを、JSON形式の文字列へと変換します。 文字列になることで、ファイルに保存したり、通信で送ったりできるようになります。

一方で、JSON形式の文字列をPythonの辞書に戻すときに使うのが json.loads() です。 JSON文字列を読み込んで辞書に変換することで、再びPythonのプログラム内で 普通の辞書としてデータを操作できるようになります。 この「変換して戻す」という流れを理解することが、JSON活用の第一歩です。

日本語データとensure_asciiの重要性

記事の中でも触れたように、日本語を含む辞書をJSONに変換する場合は ensure_ascii=False を指定することがとても重要です。 これを指定しない場合、日本語がUnicodeのエスケープ文字として表示され、 人が読みにくいJSONになってしまいます。

可読性の高いJSONを作ることは、デバッグやメンテナンスのしやすさにも直結します。 チーム開発や将来的な修正を考えると、見やすいJSONを出力する意識はとても大切です。

辞書とJSON変換の基本サンプルプログラム

ここで、記事内容を振り返る意味も込めて、辞書とJSON変換の基本的な流れを あらためて確認しておきましょう。


import json

# Pythonの辞書
user_data = {
    "名前": "花子",
    "年齢": 30,
    "スキル": ["Python", "SQL", "HTML"]
}

# 辞書をJSON文字列に変換
json_text = json.dumps(user_data, ensure_ascii=False)
print(json_text)

# JSON文字列を辞書に戻す
restored_data = json.loads(json_text)
print(restored_data)

このように、辞書 → JSON → 辞書という流れを理解しておくことで、 データの保存や通信処理が一気に身近なものになります。

JSON変換を理解することで広がる活用シーン

Pythonの辞書とJSON変換を理解すると、できることが一気に広がります。 例えば、Webアプリケーションでは、サーバーとブラウザ間でJSON形式のデータをやり取りするのが一般的です。 また、設定ファイルをJSONで管理することで、プログラムの挙動を柔軟に変更できるようになります。

初心者のうちは「辞書をJSONにする理由」が少し分かりにくいかもしれませんが、 実際にアプリ開発やデータ処理を進めていくと、 JSON変換は避けて通れない重要な知識であることに気づくはずです。

先生と生徒の振り返り会話

生徒:
「最初は、辞書をそのまま使えばいいのに、どうしてJSONに変換するんだろうと思っていました。 でも、ファイル保存や他のシステムとのやり取りを考えると、JSONにする意味がよく分かりました。」

先生:
「その気づきはとても大切ですね。Pythonの中だけで完結する処理なら辞書のままで十分ですが、 外にデータを出すときは共通形式が必要になります。その代表例がJSONです。」

生徒:
「json.dumps()とjson.loads()の役割も整理できました。 変換して終わりではなく、ちゃんと元に戻せるのが安心ですね。」

先生:
「その通りです。『変換できる』だけでなく、『安全に戻せる』ことが重要です。 これを理解しておけば、Web開発やAPI連携でも困らなくなりますよ。」

生徒:
「これからは、辞書とJSONをセットで考えながらコードを書いてみます!」

先生:
「ぜひ実際に手を動かしながら練習してください。 辞書とJSONの理解は、Python学習の大きな土台になります。」

カテゴリの一覧へ
新着記事
New1
Flask
Flaskのログレベル(DEBUG/INFO/WARNING/ERROR)を使い分ける方法を完全ガイド!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
New4
Python
Pythonの辞書操作まとめ!初心者が知っておくべき便利ワザ集
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.4
Java&Spring記事人気No4
Django
Djangoモデル入門|初心者が最初に知るべきORMの基本操作
No.5
Java&Spring記事人気No5
Flask
Flaskで非同期処理を成功させるベストプラクティス集|初心者でも失敗しない考え方
No.6
Java&Spring記事人気No6
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.7
Java&Spring記事人気No7
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.8
Java&Spring記事人気No8
Flask
Flaskのログをファイルに保存する方法!初心者でもわかる設定手順を徹底解説