コードで語るマニフェスト:政府データはこう直せばもっと使えるよ

IT 정책 제안
コードで語るマニフェスト:政府データはこう直せばもっと使えるよ

안녕하세요~ 오캄무입니다! 오늘은 정부·지자체 데이터와 시스템을 엔지니어링 관점에서 까발려보려 해요~

  • 이 글은 공개된 행정문서·포털(예: e-Gov API, Tokyo Open Data, 지자체 PDF)을 바탕으로 기술적 진단을 제공합니다
  • 데이터가 PDF에 갇혀 있거나 API가 분산된 경우, 실제 활용 가능성은 크게 떨어집니다 — 구체적 개선안을 제시해요
  • 엔지니어적 사고로 KPI·実績(실적) 비교, 데이터 파이프라인·스키마 제안, 코드 예시까지 보여드립니다!

結論

정부·지자체 데이터는 이미 많이 공개돼 있지만 형식과 접근성이 발목을 잡고 있어요. PDF 중심 공개, 스키마 부재, API 단편화가 주된 문제입니다. 이건 기술로 금방 고칠 수 있는 문제들이고, CSV/JSON로의 전환, 공통 스키마 도입, 자동화된 ETL·테스트만으로 활용도를 크게 올릴 수 있습니다.

レポート本文

現状の観察(データソースと公開形態)

これ見てくださいよ:

  • e-Gov의 行政APIカタログ(https://api-catalog.e-gov.go.jp)や行政APIページにはAPI一覧があるけど、組織横断で統一スキーマがない(参考: 検索結果[6][10])。
  • 東京都オープンデータ(https://portal.data.metro.tokyo.lg.jp/)はCSVやAPI提供が進んでいて良い例(検索結果[7][11][12])。
  • 一方で「デジタル田園都市国家構想交付金」等のKPI報告はPDFで配布される例が多い(検索結果[2][4])。PDFは人間には読めてもマシンには厳しいんですよね。

要するに:データはあるけど“機械可読性”がバラバラで、API一本で解決する話になっていない、ということです。

技術的課題の整理

  • PDF vs CSV/JSON
- PDFに数値や表が埋め込まれていると、スクレイピングやOCRが必要になり再現性が低い。要するに手間が増えるってことです。
  • スキーマとメタデータ不足
- APIがあってもフィールド名や意味の共通定義がないと、複数自治体データの結合が難しい。
  • バージョン管理と更新頻度の不明瞭さ
- データ更新タイミングがわからないとダッシュボードやアラートの自動化ができない。
  • 認証・CORS・レート制限
- 開発者フレンドリーなAPI設計がされていないケースあり。

KPIの数値目標と実績のギャップ(例: デジタル田園都市交付金)

公式ガイドラインPDF(検索結果[2])や県の実績報告(検索結果[4])を見ると、KPI設定はされているけど、年度ごとの時系列データが機械可読で出てこない。要するに、目標と実績を自動で比較するダッシュボードを作ろうとすると、まずPDFから値を抜いて正規化する工程が必要になるんです。

技術的な改善提案(具体的)

  • マシンリーダブル第一主義
  • - 原則:表や数値はCSV/JSONで必ず公開。PDFはヒューマン向けコピーに留める。

  • 共通スキーマとメタデータ(例: JSON Schema / Data Package)
  • - 各プロジェクトに対してdata-package.jsonやschema.jsonを付与。フィールド名/単位/更新日を明記。

  • API設計:OpenAPI + pagination + CORS
  • - GET /projects?page=...&per_page=... のような標準を用意するとクライアント実装が楽になる。

  • ETLと品質チェックの自動化
  • - CIでデータ検証(Great Expectations等)、毎日/週でスナップショットをS3に吐く。差分を監視してアラート。これで数値の信頼度を上げる。

  • KPIの機械化
  • - KPI定義を機械可読で公開(例: kpi.json)。数式、対象期間、目標値を入れるとダッシュボードで自動評価可能。

  • 事例: 東京都オープンデータをベースに国レベルでの統一層を作る
  • - 各都道府県のCSVを取り込んで正規化し、国側で共通APIを提供する。データパッケージ化でメタ管理。

    コード例(実践的)

    まずはe-Govや都のCSVを取ってPandasで正規化する簡単な例です(Python):

    import requests
    

    import pandas as pd

    例: 都が提供するCSVダウンロードURLを直接読む

    csv_url = 'https://example.data.metro.tokyo.lg.jp/dataset/.../download.csv'

    df = pd.read_csv(csv_url)

    日付列と数値列の整形

    df['date'] = pd.to_datetime(df['date'])

    df['value'] = pd.to_numeric(df['value'], errors='coerce')

    共通スキーマに合わせてリネーム

    df = df.rename(columns={'project_id': 'projectId', 'value': 'kpiValue'})

    JSON化して保存

    df.to_json('normalized.json', orient='records', force_ascii=False)

    APIがある場合のcurl例:

    curl -s "https://api-catalog.e-gov.go.jp/api/endpoint?per_page=100" \
    

    -H "Accept: application/json" \

    | jq '.results[] | {id: .id, title: .title}'

    これで自動化パイプラインの最初のステップは完成です。要するに、人手でPDFから値を抜くところをコード化するだけで生産性が爆上がりします。

    運用面の提案

    • SLA/稼働情報を公開する(API status page)
    • データ利用規約を統一して、開発者が安心して使えるようにする
    • サンプルコードとSDK(Python/JS)を公式に用意してコミュニティを活性化

    まとめ

    • 問題点:PDF依存、スキーマばらつき、API設計の未統一、更新情報の欠如
    • すぐできる改善:CSV/JSON公開、JSON Schema導入、OpenAPIでAPI統一、CIで品質担保
    • 効果:データ再利用性の向上、ダッシュボード自動化、政策評価の透明化

    おかむーから一言

    테크로 사회를 업그레이드하는 건 결국 손에 잡히는 데이터부터 시작합니다. 엔지니어 관점에서 보면 고칠 건 명확하니, 같이 바꿔봅시다!

    공유하기