代码で語るマニフェスト:从API到CSV,解读政府数据的技术账本

IT政策提案
代码で語るマニフェスト:从API到CSV,解读政府数据的技术账本

どうも〜おかむーです!大家好,我是おかむー!今天想用「代码で語るマニフェスト」的方式,从工程与数据角度拆解日本与地方政府的公开数据现状,指出问题并给出可落地的改善建议~

  • 这篇文章看三点:政府有API和开放数据目录,但格式不一、机器可读性不足;PDF散落是最大敌人,API覆盖度和质量参差;通过工程化流程(ETL、schema、CI)能把政策宣言变成可验证的指标。
  • 技术结论:把数据先做成稳定的JSON/CSV、配套OpenAPI/RateLimit文档、加上数据版本与Schema测试,能显著提升政策可验证性。
  • 我给出三类可执行建议:数据产出端标准化、管道与验证自动化、对外开放的SDK/示例代码,让民间能直接复现政策成效。

結論

政府和自治体现在已经有不错的起点(参见e-Gov API、東京都オープンデータカタログ、GovTech東京的实践),但在机器可读性、格式统一、数据质量与可验证性上还有明显缺口。要把“政策目标→执行→评估”变成闭环,技术上需要:

  • 优先输出CSV/JSON/JSON-LD而非只给PDF;
  • 对每个API和数据集公开Schema、更新时间、ライセンス与版本信息(例如用DCAT);
  • 在数据发布前走一套自动化质量门(schema validation、差异检测、空值检查);
  • 提供示例代码与无缝认证机制,降低二次利用门槛。
  • 要するに、政策宣言不仅要写在白皮书和PDF里,还要把数字以工程友好的方式发布,这样民间、研究者、メディア才能用代码复现、监督和改进政策。

    レポート本文

    現状スナップショット(资料与参考)

    これ見てくださいよ:

    • e-Gov API カタログ(APIの存在と概要):https://www.e-gov.go.jp/digital-government/api
    • 東京都オープンデータカタログ(API例:PublicFacilityなど):https://portal.data.metro.tokyo.lg.jp/opendata-api/
    • GovTech東京の事例紹介(ダッシュボードと利用促進):https://www.govtechtokyo.or.jp/services/data-utilization/ と note の報告

    これらは良い出発点なんですけど、現場でよくある問題は以下。

    • PDFファイルにまとめて公開 → 機械可読性ゼロ。表は画像か複雑なレイアウトで埋められている。要するに、人が目で読む用に最適化されているだけ。
    • APIはあるけどスキーマが曖昧 → フィールド名が自治体でバラバラ、データ型が安定しない。
    • メタデータ不足 → 更新日、ライセンス、作成元、計測方法が欠けがち。
    • サンプルコードやクライアントライブラリがない → 使い方が分からない。

    技術的にどう検証するか(工程と手法)

    1) 入手フェーズ:

    • 先にAPIがある場合はOpenAPI/Swaggerを確認、無ければHTML/CSVリンクやPDFを収集。
    • e-Govや都のオープンデータカタログはまずカタログAPIを叩くのが早い。

    2) 機械可読性チェック:

    • CSV/JSONが存在するか?存在しなければPDF。PDFはtabula/camelotで抽出し、正規表現で列名を揃える。
    • 例:PDFからテーブルを取るPythonスニペット
    # 要先 pip install tabula-py pandas
    

    import tabula

    import pandas as pd

    tables = tabula.read_pdf('budget_report.pdf', pages='all', multiple_tables=True)

    tablesはDataFrameのリスト。後続でカラム正規化を行う

    3) API利用例(東京都の公共施設APIを想定)

    import requests
    

    import pandas as pd

    url = 'https://portal.data.metro.tokyo.lg.jp/api/PublicFacility'

    resp = requests.get(url, params={'limit':100})

    data = resp.json()

    df = pd.json_normalize(data['items'])

    print(df.head())

    4) 品質検査(自動化できる)

    • Schema validation(pydantic / jsonschema)で型チェック。
    • 欠損率、日付のレンジ、一意キー(ID)の重複検査。
    • 時系列データなら遅延差分検査(前回リリースとの差分が大きければアラート)。

    5) 指標整合性テスト(政策目標と実績のギャップ分析)

    • 政策目標は白書や予算資料に記載されることが多いがPDFに埋もれている場合がある。まず目標値を機械読める形で抽出(手動タグ付け→構造化)。
    • 実績データをAPI/統計表から取得して、年次・四半期で比較。差分を計算して可視化。

    簡単な差分コード例:

    # df_goal, df_actual は keyでマージできるDataFrame
    

    merged = df_goal.merge(df_actual, on='metric_code', suffixes=('_goal','_actual'))

    merged['gap'] = merged['value_actual'] - merged['value_goal']

    print(merged[['metric_code','value_goal','value_actual','gap']])

    政策数値目標のよくあるギャップ(典型パターン)

    • 目標が累積ベース/年度ベースで曖昧 → 計算方法の不一致で見かけ上の達成状況が変わる。
    • データ更新頻度が低い → 実績の最新値が反映されない。
    • 指標定義がたびたび変わる → 時系列の継続性が失われる。

    こういう時は「指標定義ドキュメント」と「バージョン付きデータセット」を守ればかなり解消するんですよね。

    改善提案(実践的でプログラム可能)

  • 出力フォーマット優先順位:JSON-LD / CSV / Excel / PDF。PDFは最後の手段。
  • カタログをDCATで公開:各データセットにtitle、description、temporalCoverage、license、lastModifiedを入れる。
  • CIパイプラインでデータ検証:GitHub Actionsで毎日API叩いてschema validation & 差分レポートを自動生成、異常時はIssue化。
  • サンプルSDKとJupyter Notebookを用意:日常的な利用者向けに「最初の一歩」を作る。これで民間の利用がぐっと増える。
  • ベストプラクティス集:PDFに書いた計算方法の原式、単位、丸め処理などをREADMEに明記。
  • まとめ

    • 政府・自治体は既にAPIやオープンデータ拠点を作り始めているが、機械可読性・スキーマ整備・データ品質の自動検証が足りない。
    • エンジニア的に言うと、API一本と良質なCSVがあれば多くの政策検証はAPIコール数行+pandasで再現できるんです。
    • 具体的アクションは:CSV/JSON優先、メタデータ(DCAT)必須、schema validationをCIに組み込む、サンプルコードで利用を促進する、という順序で導入すると効果が出やすい。

    おかむーから一言

    社会をコードで検証するのってマジで楽しいんですよ!テクノロジーで政策をオープンにして、数字で語れる社会を一緒に作りましょう。起業家兼エンジニアとして、現場で使えるツールをどんどん出していきたいです!