PythonでAPIレスポンスをJSONファイルに保存・パースする完全ガイド

この記事では、Pythonを使用してAPIから取得したレスポンスをJSONファイルとして保存し、その後でパースする手法について詳しく解説します。具体的なコード例、その詳細な解説、および応用例を3つ提供します。

目次

はじめに

APIからデータを取得するケースは多く、そのデータをさまざまな形で活用するためには、まずはファイルに保存することが一般的です。特にJSON形式はWeb APIと相性が良く、Pythonでも扱いやすいため、本記事ではJSON形式での保存とパースをメインに解説します。

必要なライブラリ

本手法を実装するには以下のPythonライブラリが必要です。
– Requests
– JSON

基本的なコードの構造

まず、基本的なコードの構造を説明します。


# 必要なライブラリをインポート
import requests
import json

# APIエンドポイントのURL
url = "https://api.example.com/data"

# APIからデータを取得
response = requests.get(url)

# JSON形式で保存
with open("data.json", "w") as f:
    json.dump(response.json(), f)

# JSONデータを読み込み
with open("data.json", "r") as f:
    data = json.load(f)

# データのパース
print(data['key'])

ライブラリのインポート

RequestsとJSONライブラリをインポートしています。

APIからのデータ取得

`requests.get(url)`によりAPIからデータを取得します。

JSON形式での保存

`json.dump()`関数を使ってAPIレスポンスをJSONファイルとして保存します。

JSONデータの読み込みとパース

`json.load()`関数を使ってJSONデータを読み込み、必要な情報をパースします。

応用例

応用例1:エラーハンドリングを追加


# エラーハンドリングを追加
try:
    response = requests.get(url)
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print(f"エラーが発生しました: {e}")
else:
    with open("data_with_error_handling.json", "w") as f:
        json.dump(response.json(), f)

ここでは、`requests.exceptions.RequestException`を捕捉してエラーハンドリングをしています。

応用例2:動的なファイル名の生成


# 現在の日時を取得
from datetime import datetime

# ファイル名を動的に生成
file_name = f"data_{datetime.now().strftime('%Y%m%d%H%M%S')}.json"

# JSON形式で保存
with open(file_name, "w") as f:
    json.dump(response.json(), f)

動的なファイル名を生成することで、毎回異なるファイルに保存できます。

応用例3:APIからの複数回のデータ取得


# 複数のAPIエンドポイント
urls = ["https://api.example.com/data1", "https://api.example.com/data2"]

# 各APIからデータを取得し保存
for i, url in enumerate(urls):
    response = requests.get(url)
    with open(f"data_{i}.json", "w") as f:
        json.dump(response.json(), f)

複数のAPIエンドポイントからデータを取得して、それぞれ別のファイルに保存します。

まとめ

この記事では、Pythonを用いてAPIからのレスポンスをJSONファイルとして保存し、さらにそれをパースする基本的な手法を紹介しました。応用例として、エラーハンドリングの追加、動的なファイル名の生成、複数のAPIからのデータ取得といった実用的な拡張も解説しました。

コメント

コメントする

目次