イクメンデータアナリストのブログ

コンサルのこと/Pythonのこと/Tableauのこと などを備忘録的に書いていこうと思います。

オープンデータAPIポータルをPythonで使ってみた(コロナの最新データ)

こんにちはbudouです!

今回は、2020年12月18日に公開されたオープンデータAPIポータルの紹介と、実際にPythonからAPI叩いてみましたのでやり方に関してご紹介したいと思います。

はじめに

「オープンデータAPIポータル」を開設しました | 政府CIOポータル

2020年12月18日に"政府CIOポータル"より、オープンデータAPIポータルがリリースされました。 ここでは、オープンデータの利活用に資する環境構築を目的として、地方自治体が公開しているデータを集約して公開していくそうです。 今回は最初の試みとして、地方公共団体(10団体)が公開している新型コロナウイルス感染症関連のオープンデータを公開された。
との事でしたので、実際に使ってみたAPIの使い勝手などに関してご紹介したいと思います。

サイトにも記載がありましたが、

有効性が確認できれば、ここでの知見を活かし、他の分野・形式のオープンデータも API 化の対象に加えることを検討していきます。

との事ですので、個人的にも信頼できるデータがAPI公開され誰でも利用できる様になるのは大変嬉しい事であり、どんどん使うことで応援したいと考えています。

オープンデータAPIポータルって何?

f:id:budounomizu:20201222122742p:plain
(イメージ)オープンデータAPIポータル

こちらにも記載があるように、内閣官房 IT総合戦略室」が運営するオープンデータに係るAPIプラットフォームサイト。 のようです。
政府系というところで見ると、e-statsなどが既にあるサービスが思い浮かびますが、オープンデータAPIポータルは地方自治体からの提供データという点が特筆すべき点なのかなと思います。
より細かい粒度が期待出来るということですね。

オープンデータAPIポータルでどんな事が出来るの?

本記事を書いているタイミング(2020年12月21日)では、10の地方自治体からのコロナ関連のデータを取得出来るようです。
尚、現在取得可能な地方自治体は、
<札幌市、会津若松市群馬県、東京都、神奈川県、横浜市福井県三重県、神戸市、福岡市>
となっています。

実際にPythonから使ってみる

基本的には Quick Startページ

に従って登録を進める形で大丈夫です。
下記は実際に手順に従った手順と、留意点を書いています。

ポータルアカウントの作成

Sign In」 をクリックしてサインイン画面を開きます。

f:id:budounomizu:20201221211541p:plain
Sign Inをクリック

サインイン画面で「Create an account」をクリックします。

f:id:budounomizu:20201221212153p:plain
Create accountをクリック

必要項目を入力してアカウントを作成します。

f:id:budounomizu:20201221212248p:plain
必要項目を入力し、Create Accountをクリック

このあと、登録したメールアドレスに確認メールが届きますので、メール内にある認証をクリックします。

ここまでで即アカウントが有効になるわけではないようです!登録したアカウントが実際に認証されるまで少し時間がありました。待っているとそのうち許可されて使えるようになると思いますので、コーヒーでも飲みながら待ちましょう。

アプリ(App)の作成

API Keyを発行してもらうまでのプロセスになります。 サインインした状態から始めます。

f:id:budounomizu:20201221214713p:plain
Appsをクリック

NEW APPをクリックします。

f:id:budounomizu:20201221215015p:plain
NEW APPをクリック

アプリ登録(運営にAPI使用の目的を知らせる)をします。
ここで使用するAPIを選択します。

f:id:budounomizu:20201221215444p:plain
アプリの登録します。必要なAPIを選択します。

ここまででAPI keyが発行されるので、メモしておく。

f:id:budounomizu:20201221215713p:plain
発行されたAPI keyをメモしておく

APIを実際に使ってみる

API keyを取得したので、あとはどのAPIを使うのか選んで実際に使ってみたいと思います。
ここでは神奈川県の 新型コロナ関連オープンデータAPIを試しに使ってみたいと思います。

f:id:budounomizu:20201221220400p:plain
どのAPIを使うのか選ぶ

どのAPIを使うのかを選んだら、リクエスト先の情報を取得します。

f:id:budounomizu:20201221220502p:plain
リクエスト先を取得

言語ごとにサンプルコードが載っており、そのまま使えるようになってます。

f:id:budounomizu:20201221220640p:plain
言語ごとにサンプルコードが載っている

コード

import requests
import pandas as pd

api_key = "Your_API_key" #前項までで取得したAPI keyを渡す。

#ここ例では"神奈川県の 新型コロナ関連オープンデータAPI"のurlを指定している。
url = "https://api.opendata.go.jp/kanagawa-ken/patients?apikey={}" 

requestUrl = url.format(api_key)
requestHeaders = {
    "Accept": "application/json"
}

request = requests.get(requestUrl, headers=requestHeaders)

result_json = result_byte.decode()
df = pd.read_json(result_json)

これでdfを出力してみると...

f:id:budounomizu:20201222032911p:plain
結果:神奈川県 新型コロナ関連オープンデータAPI

という感じで出来てますね。

おわりに

オープンデータAPIポータルの紹介、それから実際にPythonからAPI叩いてみたのでプロセスとコード、それから結果に関して紹介しました。
今回のオープンデータAPIですが、お題目の通りやはり地方自治体で所持しているデータを一元管理して誰でも利用できるように整えて公開している。というところが大きな価値だと思います。
また、「政府系のIT関連って面倒ばかりでなかなか利用しにくいのでは...」という先行イメージがありましたが、実際に使ってみたところ全くそのようなことはなく、逆にとても分かりやすい仕様になっていると思います。

まだオープンしたばかりということでコロナの情報だけですが、今後使えるAPI(情報)が増えていく事を期待したいです。
研究にももちろんビジネスにも活躍の場があるものになると思いますので、今後も使うことで応援できたらと思います。