為替レート、天気情報、ニュース、センサーデータなど、さまざまな情報がWeb APIを通じて提供されています。Pythonを使えば、これらのAPIから定期的にデータを取得し、保存・加工・通知などに自動で活用することが可能です。
この記事では、PythonでWeb APIに定期アクセスし、JSONデータを扱う基本的な方法を紹介します。
使用するライブラリ
基本的に標準ライブラリだけでも実装可能ですが、以下のようなライブラリが一般的です。
requests
:APIへのHTTPリクエストjson
:JSON形式の解析(Python標準)time
:定期実行用のスリープ処理
pip install requests
APIへのアクセスとJSONの取得
ここでは、無料で使える為替API(例:https://api.exchangerate-api.com
)を例にします。
import requests
url = "https://api.exchangerate-api.com/v4/latest/USD"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print("JPYのレート:", data["rates"]["JPY"])
else:
print("APIエラー:", response.status_code)
ポイント: APIのレスポンスはJSON形式で返ってくるため、.json()
メソッドで辞書型に変換できます。
定期的にAPIを呼び出す処理
一定間隔でデータを取得するには、while
ループとtime.sleep()
を使います。
import time
def fetch_data():
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print("USD → EUR:", data["rates"]["EUR"])
else:
print("取得失敗")
# 10分ごとに実行
while True:
fetch_data()
time.sleep(600) # 600秒 = 10分
JSONデータの保存と加工
取得したデータをCSVやJSONファイルとして保存しておけば、後で分析に活用できます。
import json
from datetime import datetime
def save_to_file(data):
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"rates_{timestamp}.json"
with open(filename, "w", encoding="utf-8") as f:
json.dump(data, f, indent=2, ensure_ascii=False)
活用例
- 天気APIから毎朝データを取得し、メール通知
- 為替データを毎時取得してCSVに蓄積し、グラフ化
- 製造ラインのIoTセンサーAPIを監視して異常を検出
まとめ
PythonとWeb APIを組み合わせれば、定期的なデータ収集とJSONデータの活用が簡単に実現できます。取得したデータを保存・分析・通知に活用すれば、業務の自動化やデータドリブンな判断にもつながります。
まずは公開APIから試し、慣れてきたら業務システムとの連携にも応用してみましょう。