PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
生徒
「PythonでAPIってよく聞くんですが、そもそもAPIって何なんですか?」
先生
「APIは、簡単に言うと『インターネット上のサービスとプログラムが会話するための仕組み』です。例えば、天気情報サイトのデータを自分のPythonプログラムから取得することもできます。」
生徒
「Pythonからインターネットのデータを取れるんですか?」
先生
「できます。そのときによく使われるのがPythonのrequestsライブラリです。これを使うと、初心者でも簡単にAPIリクエストを送信できます。」
生徒
「難しそうですが、初心者でも理解できますか?」
先生
「基本から順番に説明すれば大丈夫です。PythonでAPIリクエストを送る方法を見ていきましょう。」
1. PythonのAPIリクエストとは?
PythonのAPIリクエストとは、Pythonプログラムからインターネット上のサービスへデータを要求する処理のことです。 例えば次のようなことができます。
- 天気APIから天気情報を取得する
- ニュースAPIから最新ニュースを取得する
- Webサービスのデータを自動取得する
このような処理を行うときに使うのがAPI(Application Programming Interface)です。 APIとは簡単に言うと、プログラム同士が情報をやり取りするための窓口です。
そしてPythonでAPI通信をする場合、多くの開発者が利用しているのがrequestsライブラリです。requestsはPythonのHTTP通信ライブラリで、Web APIへのアクセスを簡単にしてくれる便利なツールです。
2. requestsライブラリとは?
requestsライブラリとは、PythonでHTTP通信を行うための人気ライブラリです。 HTTPとは、Webサイトを見るときにも使われている通信ルールのことです。
難しく聞こえるかもしれませんが、イメージとしては「インターネット上のサーバーにお願いしてデータをもらう仕組み」です。
例えば次のような流れになります。
この「リクエスト送信」を簡単に書けるのがrequestsライブラリです。
まずはライブラリをインストールします。
pip install requests
このコマンドを実行すると、PythonでAPIリクエストを送る準備ができます。
3. PythonでAPIリクエストを送信する基本コード
それでは実際にPythonでAPIリクエストを送信する基本コードを見てみましょう。
import requests
url = "https://api.github.com"
response = requests.get(url)
print(response.status_code)
このプログラムでは、GitHubのAPIにアクセスしています。
コードのポイントを説明します。
import requests→ requestsライブラリを読み込むrequests.get()→ APIにGETリクエストを送信status_code→ 通信結果の番号
status_codeは通信結果を表す数字です。
200
200が表示された場合は、API通信が成功しています。
4. APIからデータ(JSON)を取得する方法
多くのWeb APIでは、データ形式としてJSON(ジェイソン)が使われています。 JSONとは、データを整理して表現する形式です。
Pythonのrequestsでは、JSONデータを簡単に取得できます。
import requests
url = "https://api.github.com"
response = requests.get(url)
data = response.json()
print(data)
このコードでは、APIから取得したデータをPythonの辞書型として取得しています。
{'current_user_url': 'https://api.github.com/user'}
JSONデータは、Pythonでは辞書のように扱えるため、データ処理や自動化にとても便利です。
5. APIにパラメータを送信する方法
APIによっては、検索条件などを送ることができます。この情報をパラメータと呼びます。
例えば「Python」というキーワードで検索するAPIを考えてみましょう。
import requests
url = "https://api.github.com/search/repositories"
params = {"q": "python"}
response = requests.get(url, params=params)
print(response.url)
このコードでは、paramsという変数に検索条件を入れています。
paramsを使うことで、URLに自動的にパラメータが追加されます。
https://api.github.com/search/repositories?q=python
このようにして、Pythonプログラムから検索APIを利用できます。
6. POSTリクエストでデータを送信する
APIには、データを取得するGETだけでなく、データを送信するPOSTリクエストもあります。
POSTは、フォーム送信やデータ登録などに使われます。
import requests
url = "https://httpbin.org/post"
data = {
"name": "Taro",
"age": 20
}
response = requests.post(url, data=data)
print(response.json())
このプログラムでは、名前と年齢のデータをAPIへ送信しています。
{'form': {'name': 'Taro', 'age': '20'}}
このようにPOSTリクエストを使うことで、PythonからWebサービスへデータを送ることができます。
まとめ
(振り返りのまとめ)
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
生徒
「PythonでAPIってよく聞くんですが、そもそもAPIって何なんですか?」
先生
「APIは、簡単に言うと『インターネット上のサービスとプログラムが会話するための仕組み』です。例えば、天気情報サイトのデータを自分のPythonプログラムから取得することもできます。」
生徒
「Pythonからインターネットのデータを取れるんですか?」
先生
「できます。そのときによく使われるのがPythonのrequestsライブラリです。これを使うと、初心者でも簡単にAPIリクエストを送信できます。」
生徒
「難しそうですが、初心者でも理解できますか?」
先生
「基本から順番に説明すれば大丈夫です。PythonでAPIリクエストを送る方法を見ていきましょう。」
1. PythonのAPIリクエストとは?
PythonのAPIリクエストとは、Pythonプログラムからインターネット上のサービスへデータを要求する処理のことです。 例えば次のようなことができます。
- 天気APIから天気情報を取得する
- ニュースAPIから最新ニュースを取得する
- Webサービスのデータを自動取得する
このような処理を行うときに使うのがAPI(Application Programming Interface)です。 APIとは簡単に言うと、プログラム同士が情報をやり取りするための窓口です。
そしてPythonでAPI通信をする場合、多くの開発者が利用しているのがrequestsライブラリです。requestsはPythonのHTTP通信ライブラリで、Web APIへのアクセスを簡単にしてくれる便利なツールです。
2. requestsライブラリとは?
requestsライブラリとは、PythonでHTTP通信を行うための人気ライブラリです。 HTTPとは、Webサイトを見るときにも使われている通信ルールのことです。
難しく聞こえるかもしれませんが、イメージとしては「インターネット上のサーバーにお願いしてデータをもらう仕組み」です。
例えば次のような流れになります。
この「リクエスト送信」を簡単に書けるのがrequestsライブラリです。
まずはライブラリをインストールします。
pip install requests
このコマンドを実行すると、PythonでAPIリクエストを送る準備ができます。
3. PythonでAPIリクエストを送信する基本コード
それでは実際にPythonでAPIリクエストを送信する基本コードを見てみましょう。
import requests
url = "https://api.github.com"
response = requests.get(url)
print(response.status_code)
このプログラムでは、GitHubのAPIにアクセスしています。
コードのポイントを説明します。
import requests→ requestsライブラリを読み込むrequests.get()→ APIにGETリクエストを送信status_code→ 通信結果の番号
status_codeは通信結果を表す数字です。
200
200が表示された場合は、API通信が成功しています。
4. APIからデータ(JSON)を取得する方法
多くのWeb APIでは、データ形式としてJSON(ジェイソン)が使われています。 JSONとは、データを整理して表現する形式です。
Pythonのrequestsでは、JSONデータを簡単に取得できます。
import requests
url = "https://api.github.com"
response = requests.get(url)
data = response.json()
print(data)
このコードでは、APIから取得したデータをPythonの辞書型として取得しています。
{'current_user_url': 'https://api.github.com/user'}
JSONデータは、Pythonでは辞書のように扱えるため、データ処理や自動化にとても便利です。
5. APIにパラメータを送信する方法
APIによっては、検索条件などを送ることができます。この情報をパラメータと呼びます。
例えば「Python」というキーワードで検索するAPIを考えてみましょう。
import requests
url = "https://api.github.com/search/repositories"
params = {"q": "python"}
response = requests.get(url, params=params)
print(response.url)
このコードでは、paramsという変数に検索条件を入れています。
paramsを使うことで、URLに自動的にパラメータが追加されます。
https://api.github.com/search/repositories?q=python
このようにして、Pythonプログラムから検索APIを利用できます。
6. POSTリクエストでデータを送信する
APIには、データを取得するGETだけでなく、データを送信するPOSTリクエストもあります。
POSTは、フォーム送信やデータ登録などに使われます。
import requests
url = "https://httpbin.org/post"
data = {
"name": "Taro",
"age": 20
}
response = requests.post(url, data=data)
print(response.json())
このプログラムでは、名前と年齢のデータをAPIへ送信しています。
{'form': {'name': 'Taro', 'age': '20'}}
このようにPOSTリクエストを使うことで、PythonからWebサービスへデータを送ることができます。