PythonでさくっとRESAS(リーサス)のデータを取得するサンプル

2020/01/03

API Python

t f B! P L
あけましておめでとうございます!

今年一発目は政府の運営している統計情報サイトRESASをさくっと使うチュートリアルです。
政府統計サイトというとe-Statが有名ですが、後発のRESASは市町村単位の情報に特化しています。

e-Statは総務省統計センター、RESASは内閣府と管轄が異なるようです。

コンテンツを利用する場合は以下のクレジットを載せる必要があります。
出典:RESAS(地域経済分析システム)

ユーザー登録&APIKEY取得

https://opendata.resas-portal.go.jp/form.html

こちらのページからユーザー登録可能です。
APIKEYは登録後に発行されます。

データ取得サンプルコード

APIなので、headerにapikeyをセットして、リソースごとにURIにhttp(GET)でアクセスします。

import requests
import json

endpoint = "https://opendata.resas-portal.go.jp/"
headers = {"X-API-KEY": "xxxxxxxxxxxxxxxxxxxxxxxxx"}

以下のコードで都道府県コード一覧を取得します。
都道府県コードは、以後、個別のデータを取得する際のパラメータによく使います。
東京都は13です。

uri = 'api/v1/prefectures'
res = requests.get(url=endpoint+uri, headers=headers)
content = json.loads(res.content)
print(content["result"])

同様に産業大分類コードも取得しておきます。

uri = 'api/v1/industries/broad'
res = requests.get(url=endpoint+uri, headers=headers)
content = json.loads(res.content)
print(content["result"])

情報通信業はGのようです。

uri = "api/v1/municipality/labor/perYear"

params = {
    "year": 2012, 
    "prefCode": 13, 
    "sicCode": "G",
}

res = requests.get(
    url=endpoint+uri, 
    headers=headers, 
    params=params,
)

content = json.loads(res.content)
print(content["result"])

最後にこれらをパラメータとして使い、「東京都」「情報通信業」の労働生産性を取得します。


同名パラメータを複数指定する場合

APIドキュメントが充実しており、規模もe-Statと比べて小規模なため、全体像を理解しやすいです。

一方で、ひとつだけ注意点があります。
複数地域であったり、複数産業のデータを取得する際は、APIによっては別々のリクエストにする必要があります。


一応こちらにそういったケースに対する説明がありますが、addAreaやaddIndustryのパラメータが存在しないAPIもあるため、そういったAPIでは別のリクエストにせざるを得ません。

今日のベストプラクティス

それにしてもRESASのウェブページはおしゃれだな。

QooQ