##はじめに
データを集める時に、APIが使えるようになると便利だなと思って基礎を学ぶことにしました。
自分の備忘録用。
##利用するAPI
サイトを検索すると手法習得で用いられている郵便番号のAPI。今回はその中でも、zipcloudを使うことにしました。
##コードと追記
#モジュールをインポート
import json
import requests
import pandas as pd
#リクエストURL
url = 'https://zipcloud.ibsnet.co.jp/api/search'
# 条件指定
param={'zipcode':'100-0005'}
#条件からレスポンスを取得
res = requests.get(url, params=param)
#dict型に変換
response = json.loads(res.text)
#results部分だけ抜き出す
address = response['results'][0]
#データフレームに変換(最初に郵便番号がくるように入れ替え)
df = pd.DataFrame(address.values(), index=address.keys()).T
re_df = df.reindex(columns=['zipcode','address1','address2','address3','kana1','kana2','kana3','prefcode'])
re_df
項目 | 追記 |
---|---|
リクエストURL | 使いたいURLの情報を設定する |
条件指定 | リクエストURLに送るパラメータを決める |
レスポンスを取得 | パラメータから返ってきた情報が得られる |
dict型に変換 | 文字として認識できるようにする |
resultの抜き出し | 住所部分だけにする |
dfへの変換 | データセットの形にする |
上のスクリプトで得られたデータフレームがこちら。resultをそのまま抜き出すと郵便番号が最後になるので、re_dfで順番を入れ替えています(ここは好みの問題)。
##まとめ
APIというとかなり複雑なイメージがあったのですが、郵便番号に関しては割と簡単なコードで使えることが分かりました。これからはもっと複雑なAPIもトライしていけたらと思います。
ちなみに、〒100-0005は東京駅がある住所です。豆知識。
##参考
https://www.taillook.tech/entry/python3-requests-zipcloud
https://www.sejuku.net/blog/78985