PythonでRESAS-APIの都道府県一覧・市区町村一覧を取得してファイルに保存。

RESAS-API概要

地域経済分析システムRESASが提供している都道府県一覧市区町村一覧をAPIから取得する。

都道府県一覧のサンプル。全データはこちら

1
2
3
4
5
{ "message": null, 
"result": [
{ "prefCode": 1, "prefName": "北海道" },
{ "prefCode": 2, "prefName": "青森県" }
] }

市区町村一覧のサンプル。全データはこちら

1
2
3
4
5
{ "message": null, 
"result": [
{ "prefCode": 1, "cityCode": "01100", "cityName": "札幌市", "bigCityFlag": "2" },
{ "prefCode": 1, "cityCode": "01101", "cityName": "札幌市中央区", "bigCityFlag": "1" }
] }

RESAS-API-KEYを環境変数から取得

こちらの記事で書いたように、APIキーは.envファイルに’RESAS_API_KEY’として保存しておく。

Pythonでdotenvを利用するためにpython-dotenvをインストール。

1
pip install python-dotenv

これでPythonから環境変数を取得できる。

1
2
3
4
import os
from dotenv import load_dotenv
load_dotenv()
RESAS_API_KEY = os.getenv('RESAS_API_KEY')

RESAS-APIのデータをファイルに保存

必要なライブラリ

1
2
3
4
import urllib.request
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

都道府県一覧

APIの取得結果をprefListに格納して、json.dumpでファイルに保存。
保存ファイル名はdata/codes/preflist.jsonの部分で指定。

1
2
3
4
5
6
7
8
9
10
11
import urllib.request
# RESAS-APIから都道府県一覧を取得を取得
url = 'https://opendata.resas-portal.go.jp/api/v1/prefectures'
req = urllib.request.Request(url, headers={'X-API-KEY': RESAS_API_KEY})
with urllib.request.urlopen(req) as response:
data = response.read()
prefList = json.loads(data.decode())

# 都道府県一覧をJSONファイルに保存
with open('data/codes/preflist.json', 'w') as f:
json.dump(prefList, f, ensure_ascii=False, indent=4)

市区町村一覧

APIの取得結果をcityListに格納して、json.dumpでファイルに保存。
保存ファイル名はdata/codes/citylist.jsonの部分で指定。

1
2
3
4
5
6
7
8
9
10
# RESAS-APIから市区町村一覧を取得
url = 'https://opendata.resas-portal.go.jp/api/v1/cities'
req = urllib.request.Request(url, headers={'X-API-KEY': RESAS_API_KEY})
with urllib.request.urlopen(req) as response:
data = response.read()
cityList = json.loads(data.decode())

# 市区町村一覧をJSONファイルに保存
with open('data/codes/citylist.json', 'w') as f:
json.dump(cityList, f, ensure_ascii=False, indent=4)

コード全文

setCodes.pylink
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import json
import os
import urllib.request
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 環境変数からRESAS-API-KEYを取得
from dotenv import load_dotenv
load_dotenv()
RESAS_API_KEY = os.getenv('RESAS_API_KEY')

# RESAS-APIから都道府県一覧を取得を取得
url = 'https://opendata.resas-portal.go.jp/api/v1/prefectures'
req = urllib.request.Request(url, headers={'X-API-KEY': RESAS_API_KEY})
with urllib.request.urlopen(req) as response:
data = response.read()
prefList = json.loads(data.decode())

# 都道府県一覧をJSONファイルに保存
with open('data/codes/preflist.json', 'w') as f:
json.dump(prefList, f, ensure_ascii=False, indent=4)

# RESAS-APIから市区町村一覧を取得
url = 'https://opendata.resas-portal.go.jp/api/v1/cities'
req = urllib.request.Request(url, headers={'X-API-KEY': RESAS_API_KEY})
with urllib.request.urlopen(req) as response:
data = response.read()
cityList = json.loads(data.decode())

# 市区町村一覧をJSONファイルに保存
with open('data/codes/citylist.json', 'w') as f:
json.dump(cityList, f, ensure_ascii=False, indent=4)