Skip to main content

A Python client for the e-Stat API.

Project description

estats-client

PyPI version License: MIT Python Versions Build Status

estats-client は、日本の政府統計の総合窓口 (e-Stat) APIを利用するためのPythonクライアントライブラリです。 e-Stat APIから統計データを簡単に取得し、Pydanticモデルとして利用することができます。

主な機能

  • 統計表情報取得 (getStatsList)
  • 統計データ取得 (getStatsData)
  • レスポンスデータをPydanticモデルにパース
  • シンプルなAPIインターフェース

インストール

PyPIからインストールできます(公開後):

pip install estats-client

必要なもの

  • e-Stat API アプリケーションID (appId): e-Stat APIを利用するには、e-Statのウェブサイトで利用者登録を行い、アプリケーションIDを取得する必要があります。

##基本的な使い方

環境変数の設定

取得したアプリケーションIDは、環境変数 ESTATS_APP_ID に設定するか、クライアント初期化時に直接渡すことができます。 プロジェクトルートに .env ファイルを作成して管理することも可能です(ライブラリ利用時は環境変数推奨)。

ESTATS_APP_ID="YOUR_APP_ID_HERE"

クライアントの初期化とデータ取得

import os
from dotenv import load_dotenv
from estats_client.models.client import EstatsAPIClient, StatsDataParam, StatsListParam
from estats_client.models.result import GetStatsDataResponse
from estats_client.models.result_get_catalog import GetDataCatalogResponse

# .envファイルから環境変数を読み込む (ローカル開発用)
load_dotenv()

APP_ID = os.getenv("ESTATS_APP_ID")

if not APP_ID:
    raise ValueError("環境変数 ESTATS_APP_ID が設定されていません。")

# クライアントの初期化
client = EstatsAPIClient(app_id=APP_ID)

# --- 統計表情報取得 (getStatsList) の例 ---
try:
    list_params = StatsListParam(searchWord="経済センサス", limit=1)
    response_json_list = client.get_stats_list(params=list_params)
    stats_list_response = GetDataCatalogResponse(**response_json_list)

    if stats_list_response.get_data_catalog.result.status == 0:
        print("統計表情報取得 成功:")
        for catalog_info in stats_list_response.get_data_catalog.data_catalog_list_inf.data_catalog_inf:
            print(f"  ID: {catalog_info.id}")
            print(f"  統計名: {catalog_info.dataset.stat_name.value}")
            print(f"  表題: {catalog_info.dataset.title.name}")
            # 必要に応じて他の情報も表示
    else:
        print(f"統計表情報取得 エラー: {stats_list_response.get_data_catalog.result.error_msg}")

except Exception as e:
    print(f"統計表情報取得中にエラーが発生しました: {e}")


# --- 統計データ取得 (getStatsData) の例 ---
try:
    data_params = StatsDataParam(statsDataId="0003173901") # 例: 航空輸送統計調査
    response_json_data = client.get_stats_data(params=data_params)
    stats_data_response = GetStatsDataResponse(**response_json_data)

    if stats_data_response.get_stats_data.result.status == 0:
        print("\\n統計データ取得 成功:")
        print(f"  統計名: {stats_data_response.get_stats_data.statistical_data.table_inf.statistics_name}")
        print(f"  取得データ件数: {len(stats_data_response.get_stats_data.statistical_data.data_inf.value)}")
        # 最初のいくつかのデータを表示
        for i, value_data in enumerate(stats_data_response.get_stats_data.statistical_data.data_inf.value[:3]):
            print(f"    データ{i+1}: Time={value_data.time}, Value={value_data.value}")
    else:
        print(f"統計データ取得 エラー: {stats_data_response.get_stats_data.result.error_msg}")

except Exception as e:
    print(f"統計データ取得中にエラーが発生しました: {e}")

開発

セットアップ

このリポジトリをクローンし、Rye を使って開発環境をセットアップします。

git clone https://github.com/RAKUDEJI/estats-client.git
cd estats-client
rye sync

テスト

テストはpytestを使用して実行します。

rye run pytest

テストを実行する前に、プロジェクトルートに .env ファイルを作成し、APP_ID="YOUR_TEST_APP_ID" のようにテスト用のアプリケーションIDを設定してください。

ライセンス

このプロジェクトはMITライセンスのもとで公開されています。詳細は LICENSE ファイル(もしあれば)または pyproject.toml をご覧ください。

コントリビューション

バグ報告、機能リクエスト、プルリクエストを歓迎します。Issueを作成するか、プルリクエストを送ってください。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

estats_client-0.1.1.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

estats_client-0.1.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file estats_client-0.1.1.tar.gz.

File metadata

  • Download URL: estats_client-0.1.1.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for estats_client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0d9cd6aff9e2d1bc11b648b4cc0a23b09b9ece33e7dd1fa5150d0b978d476f56
MD5 687adf660aff7bce6912e6869c3c1be7
BLAKE2b-256 2fda6b80893101afb7b66ed4b8cef6beaa3614ed2b96712680e06553c19df7ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for estats_client-0.1.1.tar.gz:

Publisher: publish-to-pypi.yml on RAKUDEJI/estats-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file estats_client-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: estats_client-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for estats_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5da18a613ff49c9b6beec16c7206b6f5d5ac170eb3ee52ca8901a2b44e2331a
MD5 cd48e76a5a4975b70291cf3d73e42a5d
BLAKE2b-256 e771e4d4a254c4980f6ec20d02b803e4c247ffc1fcafe01fabba7668186ad17a

See more details on using hashes here.

Provenance

The following attestation bundles were made for estats_client-0.1.1-py3-none-any.whl:

Publisher: publish-to-pypi.yml on RAKUDEJI/estats-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page