LoginSignup
5
1

初めに

ゼミの研究発表の為に、人口データが必要になったのでRESASのAPIを使って市町村ごとの人口データ取得しました。その方法をまとめてご紹介します。

目次

  • APIキーの取得
  • 都道府県コードの取得
  • 市区町村コードの取得
  • 人口構成データの取得
  • 人口ピラミッドの取得

APIキーの取得

公式サイトに登録をしてAPIキーを取得します。
RESAS API公式サイト
スクリーンショット 2023-07-05 132025.png
下はRESAS-APIの仕様書のリンクです。
RESAS-API仕様書

都道府県コードの取得

都道府県コードを指定することで、都道府県を指定することができます。
その為に必要な都道府県コード一覧をAPIを使って取得します。

import requests

api_key = "取得したAPIキーを入れてね"
headers = {"X-API-KEY": api_key}
response = requests.get("https://opendata.resas-portal.go.jp/api/v1/prefectures", headers=headers)
data = response.json()

スクリーンショット 2023-07-05 133409.png
黄色でマーカーを引いた数字の部分が都道府県コードです。
都道府県コードをprefCode
市区町村コードをcityCode
といいます。

今回指定したURLは
スクリーンショット 2023-07-05 133955.png
都道府県一覧のsampleにURLがあります。

市区町村コードの取得

研究内容の関係で、熊本県の市町村コードを取得します。
熊本県の都道府県コードは43です。

# Make a GET request to the API endpoint
response = requests.get(" https://opendata.resas-portal.go.jp/api/v1/cities?prefCode=43", headers=headers)

# Process the response
data = response.json()

URLのprefCodeに43を指定しています。
スクリーンショット 2023-07-05 134545.png
熊本市のcityCodeが43100であることがわかります。

今回指定したURLは
スクリーンショット 2023-07-05 134742.png
市町村一覧のsampleにURLがあります。

人口構成データの取得

cityCodeに43100、prefCodeに43を指定することで
熊本県熊本市の人口構成データが取得できます。

response = requests.get("https://opendata.resas-portal.go.jp/api/v1/population/composition/perYear?cityCode=43100&prefCode=43", headers=headers)

data = response.json()

スクリーンショット 2023-07-05 135223.png
データの中身
総人口、年少人口、生産年齢人口、老年人口が1985~2045まで5年ごとに入っています。また、valueとrateで人数と割合がわかります。実績値は2020年まで、それ以降は推計値です。

sample URLは人口構成の所にあります。

人口ピラミッドの取得

cityCodeに43100、prefCodeに43を指定することで
熊本県熊本市の人口ピラミッドを取得できます。

response = requests.get("https://opendata.resas-portal.go.jp/api/v1/population/composition/pyramid?cityCode=43100&yearRight=1990&prefCode=43&yearLeft=2020", headers=headers)
data = response.json()

スクリーンショット 2023-07-05 140055.png
地域単位、年単位の人口ピラミッドデータを返します。
1980-2045年(5年毎)で実績値は2020年まで、それ以降は推計値。

sample URLは人口ピラミッドの所にあります。

終わりに

RESAS APIの使い方をまとめてみました。
少しでもお役に立てると嬉しく思います。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1