PythonでAPIを扱う際、ほぼ必ず登場するのがJSON(JavaScript Object Notation)です。
しかし、初心者の方は「配列?オブジェクト?辞書?」「入れ子のデータはどうやって取るの?」と混乱しがちです。
この記事では、API連携時によく使うけれど意外と忘れがちなJSON操作テクニック14選を、実例コード付きで解説します。
1. JSON文字列をPython辞書に変換する
import json
json_str = '{"name": "Taro", "age": 25}'
data = json.loads(json_str)
print(data["name"]) # Taro
ポイント
json.loads()は文字列 → Pythonオブジェクト変換。- APIレスポンスを処理する最初のステップ。
2. Python辞書をJSON文字列に変換する
import json
data = {"name": "Taro", "age": 25}
json_str = json.dumps(data)
print(json_str) # {"name": "Taro", "age": 25}
ポイント
json.dumps()でPythonオブジェクト → JSON文字列。- 保存や送信に便利。
3. JSONを整形して見やすく出力する
print(json.dumps(data, indent=4, ensure_ascii=False))
ポイント
indentでインデント指定、ensure_ascii=Falseで日本語もそのまま表示。
4. JSONファイルを読み込む
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
ポイント
json.load()はファイル → Pythonオブジェクト変換。
5. JSONファイルに書き込む
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=4, ensure_ascii=False)
ポイント
json.dump()はPythonオブジェクト → ファイル。
6. ネストされた値を安全に取得する
value = data.get("user", {}).get("profile", {}).get("age", None)
ポイント
.get()を多用すれば、キーが存在しないときもエラーにならない。
7. リストの中の特定条件に一致する要素を抽出
users = [
{"name": "Taro", "age": 25},
{"name": "Hanako", "age": 30}
]
result = [u for u in users if u["age"] > 26]
8. JSONのキー一覧を取得する
keys = list(data.keys())
ポイント
- APIの仕様確認やデバッグに有効。
9. JSONの特定キーを削除する
data.pop("age", None)
10. JSONのキーをリネームする
data["full_name"] = data.pop("name")
11. JSONのマージ
a = {"name": "Taro"}
b = {"age": 25}
merged = {**a, **b}
12. APIレスポンスを直接JSON化する
import requests
res = requests.get("https://api.example.com/user")
data = res.json()
ポイント
.json()メソッドで即Pythonオブジェクト化。
13. JSON文字列のバリデーション
try:
json.loads(json_str)
print("Valid JSON")
except json.JSONDecodeError:
print("Invalid JSON")
14. JSONPathで複雑なデータを抽出(外部ライブラリ)
from jsonpath_ng import jsonpath, parse
jsonpath_expr = parse("$.store.book[*].author")
authors = [match.value for match in jsonpath_expr.find(data)]
ポイント
- ネストが深いAPIレスポンスには
jsonpath_ngが便利。
まとめ
API連携でつまづくポイントは、「データの取り出し方」と「形式の変換」。
今回紹介した14のテクニックをマスターすれば、
- 複雑なレスポンスから必要な値を抽出
- データの保存や送信をスムーズに実装
- デバッグの効率化
が可能になります。
JSON操作チートシート(保存版)
| 操作 | 関数/メソッド |
|---|---|
| 文字列→辞書 | json.loads() |
| 辞書→文字列 | json.dumps() |
| ファイル読み込み | json.load() |
| ファイル書き込み | json.dump() |
| ネスト取得 | .get() |
| 条件抽出 | list内包表記 |
| APIレスポンスJSON化 | res.json() |
このチートシートを手元に置いておけば、API連携の不安はぐっと減ります。
PythonのJSON操作は奥が深いですが、慣れれば強力な武器になります。
このままなら、ここに**図解で「JSON→Python辞書変換フロー」**を入れて、もっと視覚的に理解できる記事にもできます。
もしご希望なら、すぐ作れますが図解も追加しますか?


コメント