API連携も怖くない!PythonのJSON操作テクニック厳選14例

python

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辞書変換フロー」**を入れて、もっと視覚的に理解できる記事にもできます。
もしご希望なら、すぐ作れますが図解も追加しますか?

コメント

タイトルとURLをコピーしました