この記事では、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からのデータ取得といった実用的な拡張も解説しました。
コメント