Python

Python基礎:APIをたたく

スポンサーリンク

はじめに

今回はPythonでAPIを用いてデータを取得する方法を扱います。世の中には様々なサービスがあって、APIが公開されています。APIを利用することでそのサービスに関するデータを簡単に取得することができます。APIの基本を身につけて、データを集められるようになりましょう。

APIの基本

APIは、はじめはよくわからないかもしれませんが、基本を押さえてしまえば簡単です。まずは各サービスでAPIドキュメントがまとめられているので、登録を済ませてしまいましょう。そのうえで、まずはエンドポイントと呼ばれる接続先のURLを確認します。このエンドポイントに対して、次の3つの情報を付加します。

  • HTTPメソッド
  • 認証情報
  • 条件指定のパラメータ

認証情報や条件指定のパラメータは、サービス提供者によって異なりますが、「認証情報はheaders、条件指定のパラメータはbodyやparamsとして分けて送る場合」と「認証情報も条件指定のパラメータも合わせて送る場合」があります。今回は認証を伴わない例として、HTTPメソッドの指定と条件指定のパラメータを付加してAPIを叩いてみることにしましょう。

試してみる

今回は、株式会社アイビスが提供している郵便番号検索APIを使ってみましょう。郵便番号検索APIに関する説明はこちらのページを参照してください。

ページの説明をみると、リクエストURLとして「https://zipcloud.ibsnet.co.jp/api/search」と記載されています。これが今回の投稿では「エンドポイント」と説明した接続先URLになります。

ページのすぐ下の部分には、リクエストパラメータの説明があります。ここをよく読んで、条件を指定しましょう。

のように説明があるので、簡単ですね。東京タワーの郵便番号「105-0011」を使って試してみましょう。PythonでAPIを叩くには「requests」というライブラリが便利です。まずはこれをインポートします。次に、エンドポイントと条件を書いていきます。ここでは、エンドポイントを「url」に条件を「params」という変数に記述することにしましょう。

# ライブラリのインポート
import requests

# エンドポイント
url='https://zipcloud.ibsnet.co.jp/api/search'

# 条件指定
params={
'zipcode':'105-0011'
}

# データの取得
res=requests.get(url,params)
res

ステータスコード200が返ってきているので、うまくいっていますね。では、中身を見てみましょう。ページ下部のレスポンスサンプルをみてみると、json形式で返ってきているようです。

res.json()

ちゃんと取得できてますね。この見方ですが、先ほどのページ下部にレスポンスフィールドの説明があります。

ちょっと並び順が違いますが、status, message, resultsというフィールドがあり、resultsというフィールドには、さらにzipcode~kana3までのフィールドあります。今回、東京タワーの郵便番号でデータで試したら、「東京都港区芝公園」がちゃんと取れてますね。

スポンサーリンク

まとめ

いかがでしたか?このように基本さえ押さえてしまえば、簡単ですね。世の中にはいろんなAPIがあるので、いろいろ試してみるとよいと思います。

コメント

タイトルとURLをコピーしました