Skip to content

yumaloop/estat-api

Repository files navigation

eStat API Tools

総務省eStatのHPでは、政府統計のデータを公開している。データ取得方法としては

  1. eStat HPにアクセスする(or Webスクレイピング)

  2. eStat APIを利用する

がある。ここは2の方法についての説明とツール置き場。

政府統計コードと統計表ID

eStatで公開されているデータは、「政府統計コード > 統計表ID > No.」 で識別される。たとえば、「平成27年国勢調査 世界測地系(250Mメッシュ)  その1 人口等基本集計に関する事項 1次メッシュ M5035」という表は、「政府統計コード:00200521, 統計表ID:8003001633, No.:1」である。

データを取得したい政府統計の「政府統計コード」がわかれば、その中に含まれる統計表を条件検索できる。条件検索する際にも参照するIDをここに記す。

eStat API (version 3.0) の仕様については、API仕様書 (ver 3.0) を参照。

Requirements

  • Python >= 3.6.9
  • Python Modules
    • pandas==1.0.5
    • requests==2.24.0
    • tqdm==4.47.0
    • urllib3==1.25.9
    • xlrd==1.2.0
    • xlwt==1.3.0

Usage (workflow)

step 0:eStat API のアプリケーションIDを取得する。

eStats APIのトップページにアクセスして、「ユーザ登録・ログイン」から手続きを行う。氏名・メールアドレス・パスワードを登録すると、メールにてアプリケーションIDが送付される。アプリケーションIDがないとAPIコールできない。

step 1:HTTP GETをコールして、APIからレスポンス(データ)を受け取る。

APIの細かい使い方は、API仕様書 (ver 3.0) を参照。基本、以下2つのコールができればほとんど困ることはない。

  1. 統計情報取得(getStatsList)

    • URLとパラメータを指定して、条件にあうすべての統計表の情報(ID, 名前, その他)を得る。
      • URL:EstatRestAPI_URLParser()クラスgetStatsListURL()メソッドを使う。仕様書の2.1を見る
      • パラメータ:仕様書の3.2を見る
    from estat_api import EstatRestApiClient
    estat_api_client = EstatRestApiClient(app_id= "65a9e884e72959615c2c7c293ebfaeaebffb6030")
    
    json_dict = estat_api_client.getStatsList(lang="J", surveyYears="2015", statsCode="00200521", searchWord="人口等基本集計", limit=10, format="json")
  2. 統計データ取得(getStatsData)

    • URLとパラメータを指定して、条件にあう統計表の生データを得る。
      • URL:EstatRestAPI_URLParser()クラスgetStatsDataURL()メソッドを使う。仕様書の2.3を見る
      • パラメータ:仕様書の3.4を見る。
    from estat_api import EstatRestApiClient
    estat_api_client = EstatRestApiClient(app_id= "65a9e884e72959615c2c7c293ebfaeaebffb6030")
    
    csv_data= estat_api_client.getStatsData(lang="J", statsDataId="0003142014", limit=10, format="csv")

step 2:Cloud Strage, BigQueryに保存

取得した生データ(CSVファイル)を加工して、GCP上にアップロードする。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages