代码で語るマニフェスト:从PDF到API,看日本自治体数据的技术短板与修复路径

IT政策提案
代码で語るマニフェスト:从PDF到API,看日本自治体数据的技术短板与修复路径

どうも〜おかむーです!今天想用工程师的视角聊聊政府和自治体数据的那些事儿〜

  • 这篇文章用“代码で語るマニフェスト”的方式,把政策文件和公开数据从技术层面拆解
  • 我会对比政府发布的PDF/報告与理想的机器可读数据(CSV/JSON/API),指出痛点并给出可落地的改进建议
  • 除了批评,我还会给出具体的代码示例和工程实践,方便你马上上手

結論

日本的中央与地方在“データの機械可読性”和「基幹業務システムの標準化」上已经有政策方向(参见デジタル庁や総務省の資料)が出ているんですが、現場はまだPDF依存・独自フォーマットが多く、APIやCSVで出していないケースが多いです。要するに、政策の数値目標はあるけどデータ基盤が整ってないので、検証・再利用がしづらいということです。

レポート本文

現状観察:政策と現場のギャップ

これ見てくださいよ。デジタル庁の「基幹業務システムの統一・標準化」方針(2026/03/18)や総務省の自治体情報システム標準化の取り組みは、設計レベルで良い方向に向かってます(参考: https://www.digital.go.jp/, https://www.soumu.go.jp/)。内閣官房もAI-Ready社会のために機械可読性を強調してます(参考: https://www.cas.go.jp/)。

でも現実は、統計表がPDFに埋め込まれてたり、Excelの印刷版だけ公開されていたり、APIが用意されていないために二次利用が大きく阻害されてます(総務省の「統計表における機械判読可能なデータの表記方法」もあるが導入は局所的)。要するに「データはあるけど使えない」状態なんです。

技術的に困っているポイント(エンジニア目線)

  • フォーマットのばらつき:PDF(画像化含む)→ OCR必須、構造化できても信頼度が下がる
  • メタデータ不足:列名・単位・更新日・主キーが明確でないCSVが散在
  • API不在または未整備:RESTful/GraphQLの標準がない、認証・レート制御・バージョン管理がされていない
  • 標準との非準拠:DCAT/CSVW/JSON-LDなどのメタデータ規格が使われていない

要するに、データをパイプラインに取り込むためのインターフェースが欠けているんです。

具体的な改善提案(優先度付き)

  • 最低ライン:CSV/JSONでの一次公開
  • - PDFに先に頼るのは許容するが、必ず同時に機械可読フォーマットを置く

    - 列名・単位・更新日時・ライセンスを明記

  • メタデータ標準の採用
  • - DCATやCSVWを採用してカタログ化(要するにデータの説明を書いておくことです)

  • シンプルな公開APIを用意
  • - OpenAPI仕様でエンドポイントを定義、ページング・フィルタ・ソートをサポート

    - 認証はAPIキーで初期運用、将来的にOAuth2やOIDCを検討

  • 基幹システムの標準準拠化を推進
  • - デジタル庁の「標準準拠システムへの移行支援」や「事業者協議会」への参加を自治体レベルで進める

  • データ品質シートの導入
  • - スキーマ検証(JSON Schema/CSV Schema)、欠損率・更新遅延の監視

    工程ツールと実装のイメージ

    エンジニア的に言うと、これはAPI一本で解決する話なんですよね。簡単なETLパイプライン例を示します。

    • フェッチ: 公開CSV/Excel/PDFを取得
    • 正規化: CSV/Excelは直接、PDFはOCR→構造化(Tikaやpdfplumberなど)
    • スキーマ検証: pandera/JSON Schemaで列と型をチェック
    • 登録: データカタログ(CKANや自前のCatalog)にメタデータ登録
    • 公開: FastAPIでRESTエンドポイント提供

    例: PythonでCSVを読み込みJSON API用に正規化する最小コード(イメージ):

    import pandas as pd
    

    from fastapi import FastAPI

    app = FastAPI()

    df = pd.read_csv('local_budget.csv')

    必要なカラム名を正規化

    df = df.rename(columns={'年度':'year','歳出(百万円)':'expenditure_million_yen'})

    @app.get('/api/budgets')

    def budgets(year: int = None):

    d = df

    if year:

    d = d[d['year'] == year]

    return d.to_dict(orient='records')

    要するに、こういう小さな工程を組めば自治体でもすぐにAPIを出せます。

    政策数値と実績の検証(例示)

    政策が掲げる「標準準拠システムへの移行」や「機械可読性の確保」は明確な目標だけど、現場の運用データが機械可読でないと実績検証ができません。たとえば地方財政のストレス(中国の地方债増加の事例など)を見ると、数値のトレーサビリティが重要だとわかります。日本でも地方債や歳出の透明化は同様で、機械可読データがあれば政策の効果測定やリスク早期検知が可能になりますよね。

    オープンデータの利活用シナリオ

    • ダッシュボード(河川監視、観光、災害情報)をAPIでリアルタイム更新
    • 民間アプリが自治体APIを叩いてサービスを提供(位置情報とオープンデータの組合せ)
    • データ駆動の予算配分改善:機械可読な予算・実績をダッシュボードで横断解析

    これ全部、フォーマットとAPIが整えばすぐ実現できるんです!

    まとめ

    • 政策レベルでは「標準化」と「機械可読性」は進行中だが、現場の公開データはまだPDF依存・メタデータ不足が多い
    • 技術的にはCSV/JSON公開、DCAT/CSVWによるカタログ化、OpenAPIでのAPI公開が最低ライン
    • 小さなETLとAPIで効果は出る。自治体IT部門とベンダーが協力すれば半年で大きく改善できるはず!

    おかむーから一言

    テクノロジーで行政はもっと速く、もっと透明になる。エンジニアの知恵を現場に持ち込んで、一緒にプロダクトを作りましょう!