TabPy経由のRESAS-API接続
本記事では、TableauのTabPyを用いたRESAS-API接続を取り上げたいと思います。
TableauとPythonの連携環境(TabPy)構築は、こちら。
データ
今回はサンプル・データとして、「昼間人口・夜間人口の地域別構成割合」を用いました。
サンプル・コード
本コードでは、指定した市区町村別の「昼間人口」と「夜間人口」のデータをRESAS-API経由で取得した後に「昼夜間差分人口」を算出して、Tableauの計算フィールドにINT型で渡しています。
SCRIPT_INT('
import json, requests
differenceArray = [0] * len(_arg2)
# RESAS API key
api_key = "***"
for i in range(len(_arg2)):
# RESAS API endpoint
url = "https://opendata.resas-portal.go.jp/"
# RESAS API path
url += "api/v1/townPlanning/commuteSchool/areaPopulationCircle?mode=2&year=2010"
url += "&prefecture_cd=" + _arg1[i] + "&city_cd=" + _arg2[i]
# Request Header
head={ "Content-Type": "application/json;charset=UTF-8", "X-API-KEY": api_key }
try:
# Get Request
req = requests.get(url, headers=head, timeout=1.0)
except:
differenceArray[i] = -1
else:
# Decode Response
res = json.loads(req._content.decode("utf-8"))
differenceArray[i] = res["result"]["noonDataSum"] - res["result"]["nightDataSum"]
finally:
sleep(0.2)
return differenceArray
',
ATTR([都道府県コード]), ATTR([市区町村コード])
)
図表1:スクリプトの入力例
