PythonでAPIとデータベースを効率的に組み合わせる方法

API(Application Programming Interface)とデータベースは、現代のアプリケーション開発において重要な要素です。この記事では、Pythonを使ってAPIとデータベースを効率的に組み合わせる方法を詳しく解説します。具体的なコード例とその詳細な解説、さらには応用例を2つ含めています。

目次

基本的なAPIとデータベースのインタラクション

APIとデータベースの基本的なインタラクションの流れは、APIからデータを取得し、そのデータをデータベースに保存する、というものです。以下はその基本的なコード例です。

# 必要なライブラリのインポート
import requests
import sqlite3

# APIからデータを取得
response = requests.get('https://api.example.com/data')
data = response.json()

# SQLiteデータベースに接続
conn = sqlite3.connect('example.db')

# データをデータベースに保存
cursor = conn.cursor()
cursor.execute("INSERT INTO table_name (column1, column2) VALUES (?, ?)", (data['key1'], data['key2']))
conn.commit()
conn.close()

コードの詳細解説

1. `requests.get(‘https://api.example.com/data’)`: `requests`ライブラリを使ってAPIからデータを取得しています。
2. `data = response.json()`: JSON形式で受け取ったデータをPythonの辞書に変換しています。
3. `sqlite3.connect(‘example.db’)`: SQLiteデータベースに接続しています。
4. `cursor.execute()`: SQLクエリを実行してデータを挿入しています。

応用例1:APIからのデータをフィルタリングして保存

APIから取得したデータが多すぎる、または不要なデータが混じっている場合は、Pythonでフィルタリングを行ってからデータベースに保存できます。

# データのフィルタリング
filtered_data = [item for item in data['items'] if item['type'] == 'target_type']

# フィルタリングしたデータをデータベースに保存
for item in filtered_data:
    cursor.execute("INSERT INTO table_name (column1, column2) VALUES (?, ?)", (item['key1'], item['key2']))
conn.commit()

コードの詳細解説

– `filtered_data = [item for item in data[‘items’] if item[‘type’] == ‘target_type’]`: リスト内包表記を使って、特定の条件を満たすデータだけを新しいリストに格納しています。

応用例2:APIのページネーションに対応する

多くのAPIはページネーションという形でデータを提供します。この場合、複数ページ分のデータを全て取得するための処理が必要です。

# ページネーションに対応
page = 1
while True:
    response = requests.get(f'https://api.example.com/data?page={page}')
    data = response.json()
    if not data['items']:
        break
    for item in data['items']:
        cursor.execute("INSERT INTO table_name (column1, column2) VALUES (?, ?)", (item['key1'], item['key2']))
    conn.commit()
    page += 1

コードの詳細解説

– `while True:`: 無限ループを使って、データがなくなるまでAPIからデータを取得しています。
– `if not data[‘items’]:`: アイテムが空になったらループを抜けます。

まとめ

Pythonを使ってAPIとデータベースのインタラクションを行う方法は多岐にわたりますが、基本的な流れとしてはAPIからデータを取得し、それをデータベースに保存するというステップが一般的です。応用例として、データのフィルタリングやAPIのページネーションに対応する方法も紹介しました。

コメント

コメントする

目次