API

【python】RESAS-APIで人口情報を取得する

APIキー取得方法

https://opendata.resas-portal.go.jp/にアクセスして利用登録

✅必要情報の入力

✅本登録のメールが送られてくるのでメール内にあるリンクをクリックで登録完了

APIの使い方

👇まずはお試しください。

Executeをクリックすることで結果を確認できます。

今回は以下3つのAPIを紹介します

✅人口構成の取得: api/v1/population/composition/perYear

地域単位、年単位の年齢構成のデータを取得することができます。 (公式リファレンス)

✅人口ピラミッドの取得: api/v1/population/composition/pyramid

地域単位、年単位の人口ピラミッドデータを取得することができます。 (公式リファレンス)

✅人口増加率の取得: api/v1/population/sum/perYear

地域単位、年単位の人口増減率情報を取得できます。 (公式リファレンス)

パラメータの使い方

各パラメータは以下のように利用することができます。

✅人口構成の取得:
api/v1/population/composition/perYear

パラメータ 詳細
prefCode 都道府県コード
cityCode 市区町村コード

「すべての市区町村」を選択する場合は「-」を送ります。

addArea 追加エリアコード

他地域と合算した値を取得する際に使用するパラメータです。 「addArea=都道府県コード_市区町村コード」の形式で指定します。 複数指定する場合は「addArea=1_,13_13101」などのように、「,」 で各地域のパラメータを区切ります。 最大10個指定でき、11個以上送られてきた場合はステータスコード400を返します。

※都道府県コードや市町村コードはAPIから取得可能ですが、都道府県コードであれば公式サイトを参照した方が早いかもです。
https://opendata.resas-portal.go.jp/docs/api/v1/prefectures.html

✅人口ピラミッドの取得:
api/v1/population/composition/pyramid

パラメータ 詳細
prefCode 都道府県コード
cityCode 市区町村コード

「すべての市区町村」を選択する場合は「-」を送ります。

yearLeft 年度1(左側)

1980-2040年(5年毎)

yearRight 年度2(右側)

1980-2040年(5年毎)

addArea 追加エリアコード

他地域と合算した値を取得する際に使用するパラメータです。 「addArea=都道府県コード_市区町村コード」の形式で指定します。 複数指定する場合は「addArea=1_,13_13101」などのように、「,」 で各地域のパラメータを区切ります。 最大10個指定でき、11個以上送られてきた場合はステータスコード400を返します。

 

✅人口増加率の取得:
api/v1/population/sum/perYear

パラメータ 詳細
prefCode 都道府県コード
cityCode 市区町村コード

「すべての市区町村」を選択する場合は「-」を送ります。

addArea 追加エリアコード

他地域と合算した値を取得する際に使用するパラメータです。 「addArea=都道府県コード_市区町村コード」の形式で指定します。 複数指定する場合は「addArea=1_,13_13101」などのように、「,」 で各地域のパラメータを区切ります。 最大10個指定でき、11個以上送られてきた場合はステータスコード400を返します。

 

pythonでの実装方法

今回は人口の沖縄県の5年ごとの人口増加率取得を例に記載いたします。

import requests

endpoint = "https://opendata.resas-portal.go.jp/api/v1/population/sum/perYear"

headers= {
    "X-API-KEY":"<APIキー>"
}
params={
    "prefCode":"47", #沖縄県
    "cityCode":"-"
}

result = requests.get(endpoint, headers=headers, params=params)

#contentsをjsonから辞書型に変換
data = result.json()
for data in data["result"]["bar"]["data"]:
    print(str(data["year"] )+ "年")
    print(str(data["sum"]) +"%(前年比)")

出力結果:

1965年
5.78%(5年前比)
1970年
1.17%(5年前比)
1975年
10.31%(5年前比)
1980年
6.14%(5年前比)
1985年
6.56%(5年前比)
1990年
3.67%(5年前比)
1995年
4.18%(5年前比)
2000年
3.52%(5年前比)
2005年
3.29%(5年前比)
2010年
2.29%(5年前比)
2015年
2.93%(5年前比)
2020年
-1.15%(5年前比)
2025年
-0.18%(5年前比)
2030年
-0.65%(5年前比)
2035年
-0.99%(5年前比)
2040年
-1.53%(5年前比)