코드로 검증하는 행정 데이터: PDF에서 API로, 기계가 읽는 공공데이터로의 전환

IT 정책 제안
코드로 검증하는 행정 데이터: PDF에서 API로, 기계가 읽는 공공데이터로의 전환

どうも〜おかむーです!今日は政府・自治体データをエンジニア視点で斬る回ですよ〜

  • 공공데이터, 아직도 PDF에 갇혀 있는 경우가 많다
  • 内閣官房의 기계可読성ルールは前進だが実装が追いついてない
  • CSV→API→OpenAPI·DCAT로繋ぐのが現場で効く改善案です

結論

일본 중앙정부는「行政データの機械可読性に関するルール」(内閣官房、2026/03/31) 같은ルール을整備してきたが、現場のポータルや自治体における公開形式はまだ混在している。要するに、PDFに埋め込みの表→単一CSV→JSON APIへの流れを標準化して、メタデータ(DCAT)、OpenAPI、文字コードUTF-8を必須にするだけで利活用は劇的に上がるということです。

レポート本文

現状観測 — これ見てくださいよ

政府系のCSVや資産は存在します(例:notice.go.jpのstatus_notice.csv、digital.go.jpの病院CSV、greenfinanceportalの発行リストCSV、内閣府の統計CSVなど)。URL直貼りでデータが取れるのは良いんですけど、問題は次のとおり。

  • フォーマットの多様性:CSVの列順・エンコーディングが自治体でバラバラ
  • PDF公開が残存:重要指標がPDFに埋められているケースがまだある
  • メタデータ不足:更新日・スキーマ説明・バージョンが不十分
  • API不在:リアルタイムアクセスや差分取得ができない

要するに、データ取得→ETL→解析の最初の部分でコストがかかりすぎるんですよね。

技術的な評価ポイント

1) 機械可読性ルールとの整合性

  • 内閣官房の決定(2026/03/31)を踏まえると「機械可読」=CSV/JSON/JSON-LD+メタデータ必須が望ましい。

2) フォーマット品質

  • 文字コード: Shift_JIS/CP932の混在は多い。手元のツールでUTF-8に変換する処理が必須。
  • スキーマ: 都度フィールド名が変わるとクライアントコードが壊れる。

3) API設計

  • オープンなREST/GraphQL APIがあると、フロント/データパイプラインが簡潔になる。
  • OpenAPI仕様で契約化しておくと自動テストや型生成が可能。

実践的なコード例(エンジニア的に言うと)

これ見てくださいよ、CSVを拾って前処理するPythonスニペットです(要するに、文字コードと日付を直すだけでだいぶ楽になります)。

import requests

import io

import pandas as pd

r = requests.get('https://notice.go.jp/docs/status_notice.csv')

r.encoding = 'utf-8' # 必要なら 'cp932'

df = pd.read_csv(io.StringIO(r.text))

日付列をパース

if '更新日' in df.columns:

df['更新日'] = pd.to_datetime(df['更新日'], errors='coerce')

print(df.head())

要するに、現場では「最初の10行」を正しくパースするだけで運用コストが下がるんです。

政策目標と実績ギャップの扱い

例えばグリーンファイナンスの発行データ(greenfinanceportal)で「発行金額」の時系列を取ると、政策目標の達成度を自動算出できる。問題は発行体名やカテゴリが自由記述だと集計が難しい点。ここは正規化ルールと標準分類(業種コード等)を定めるべきです。

改善提案(エンジニア視点)

  • CSV/JSON公開ルールの厳格化
    • すべての数値指標はCSVまたはJSONで公開。PDFは補助資料に限定。
    • 文字コードUTF-8必須、BOMなし推奨。
  • メタデータとカタログ化
    • DCAT準拠のカタログを用意。更新日時、ライセンス、スキーマを明記。
  • APIゲートウェイ+OpenAPI
    • 中央のAPIゲートウェイで認証・差分・レート制御を行い、OpenAPIで仕様を公開。
  • Data as Code運用
    • データセットをGitで管理し、CIでスキーマチェック・テスト・自動公開(CSV→S3/公開URL)を行う。
  • 変換レイヤ(ETLテンプレ)提供
    • 各自治体向けに共通のPython/Rubyテンプレを配布して、取り込み・正規化を自動化。

    参考URL(現場で触れるもの)

    • https://notice.go.jp/docs/status_notice.csv
    • https://www.digital.go.jp/(行政データのフィールドリソース)
    • https://greenfinanceportal.env.go.jp/csv/issuance_list_gb.csv
    • 内閣官房「行政データにおける機械可読性に関するルール」(2026/03/31)

    期待される効果

    • データ利用者(研究者、企業、自治体内DX担当)のコストが下がる
    • APIとスキーマの安定で再現性が高まる(政策評価の信頼性向上)
    • データを起点にしたサービス(アプリ、ダッシュボード、アラート)が増える

    まとめ

    現場は徐々に整備されているが、ルール→実装の落とし込みが足りない。要は「規約(OpenAPI・DCAT・UTF-8)で約束して、コードで守る」アプローチをもっと広げようという話です。エンジニア的に言うと、API一本で解決する部分が多いんですよね!

    おかむーから一言

    テクノロジーで政府をアップデートするの、めちゃ楽しいです。まずは小さなCSV一つをAPIにするところから始めましょう!

    공유하기