コードで語るマニフェスト:政府データをエンジニア目線で検証する

どうも〜おかむーです!오늘은 정부·지자체의 공개데이터를 코드로 파헤쳐보는 시간이에요〜
- これ見てくださいよ:内閣府やデジタル庁がCSVを出してるけど、機械判読性に差がありすぎる!
- エンジニア的に言うと:フォーマット統一、メタデータ、API設計があれば再利用が一気に進むんですよね
- 提案:CSVW/JSON-LDでスキーマ公開、UTF-8化、API一本化でデータ利活用を加速させよう!
結論
政府・自治体は「データは出している」けど、フォーマットとメタデータの整備不足で実務的な利活用が止まっている。要するに、データ公開はゴールじゃなくてインフラの一部に過ぎないということです。技術的な改善(エンコーディング統一、スキーマ公開、REST/GraphQL API整備、KPIデータの時系列API化)をやれば政策の検証性が飛躍的に上がる!
レポート本文
参照したソース(抜粋)
- 新車販売台数CSV(内閣府): https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- 公共投資の動向CSV(内閣府): https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-42.csv
- 医療機関データ(デジタル庁資源): https://www.digital.go.jp/.../xxxxxx_hospital.csv
- NICTER注意喚起CSV: https://notice.go.jp/docs/status_nicter.csv
- Japan Dashboard / e-Stat: https://dashboard.e-stat.go.jp/ と https://www.digital.go.jp/
これ見てくださいよ:内閣府のCSVは提供されているけど、実際にダウンロードしてみると「PDF表のCSV化」っぽい痕跡(ヘッダが混在、カンマで空列を埋めた痕跡、文字コードBOMなど)があるんです。要するに、機械処理の前処理コストが高いということです。
機械可読性の現状と問題点
- 文字エンコーディング:BOM付きUTF-8やShift_JIS混在があると、パースエラーが頻発します。
- ヘッダ設計の欠如:多階層の表見出しをそのまま1行に押し込んだCSVは列名が不明瞭になります。
- メタデータ不足:列の説明、単位、更新頻度、ライセンスがメタデータで付与されていないケースが多い。
- APIの欠如:ファイル配布のみでクエリ可能なAPIがないため、リアルタイム分析やダッシュボード化が難しい。
政策KPIとデータのギャップ
例として「デジタル田園都市国家構想交付金」の実績資料を見ると(県のPDF/報告書参照)、採択事業や実績額は出ているが、KPIの時系列的達成状況を機械的に取得できるAPIは無いケースが多いです(参照: 都道府県のPDFやデジタル庁のレポート)。要するに、政策の数値目標と実績をプログラムで突き合わせるのが手間で、自動で検証できないんですよね。
技術的な改善提案(優先度付き)
- CIでcsvlintやfrictionless dataの検証を走らせる
- 列名、型、単位、許容値、更新頻度、ライセンスを定義。要するに“データの契約書”を付けるイメージです
- エンドポイント例: GET /api/v1/vehicle-sales?prefecture=13&year=2023
- 認証は不要だがレート制限とキャッシュを設定
- 各交付金や補助金に対して、KPIごとの時系列データを標準スキーマで公開
実装のスニペット(エンジニア的に言うと)
エンジニアならわかると思うんですけど、CSVの読み込みはこういう感じで事前処理しておくと捗ります(Python/pandas例):
import pandas as pd
BOM対応、ヘッダ行の飛びや複数見出しに対応
df = pd.read_csv('d1-1-4.csv', encoding='utf-8-sig', skiprows=0)
列名正規化
df.columns = [c.strip().replace('\n', ' ') for c in df.columns]
日付カラムパース
if 'year' in df.columns:
df['date'] = pd.to_datetime(df['year'].astype(str) + '-01-01')
API提案(FastAPI風のエンドポイント設計):
- GET /api/v1/public-investment?year=2022&level=national
- GET /api/v1/kpi?project_id=xxx&metric=expenditure
これでダッシュボードやCI側でPolicy-as-Code的に自動検証できるようになります。
政策検証のワークフロー例
これ、全部オープンにやれば第三者による再現可能な政策検証が回るようになります。実際のところ、日本の政府系サイトはデータを出す意志はある。だけど「誰がどう使うか」を想定した設計がまだ追いついてないんですよね。
参考にした実データの扱い方メモ
- 内閣府CSV群(d1-1-4.csv, d1-1-42.csv)は表形式だが多段ヘッダ。最初に人手でヘッダを整理してスキーマ定義を作るのが現実的。
- 医療機関CSV(digital.go.jp)は列がそろっているケースが多いので取り込みは容易。ただし緯度経度の精度や住所表記の正規化は必要。
- NICTERのステータスCSVはセキュリティ通知として有用。時系列監視で自動化しやすい。
まとめ
政府はデータを出しているけど、データを“使う”ためのエコシステムが未完成。要するに、単発のCSV配布よりもAPI化・スキーマ化・メタデータ整備が先。技術的にやることは明確で、CSVW/JSON-LD、UTF-8統一、REST/GraphQL API、CIでの品質チェックを導入すれば、政策の実績と目標をプログラムで突き合わせる未来が来ます!
おかむーから一言
テクノロジーで社会をアップデートするのがミッションなんですよ!小さな改善が政策検証の自動化につながるんで、一緒にやりましょう!
정보 출처
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://notice.go.jp/docs/status_nicter.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-42.csv
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://www.digital.go.jp/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://www.kantei.go.jp/
- https://dashboard.e-stat.go.jp/
- https://www.kantei.go.jp/jp/kakugikettei/index.html
- https://www.digital.go.jp/resources/japandashboard
- https://www.kantei.go.jp/jp/naikaku/index.html
공유하기
관련 리포트

コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する
自治体データはPDFやUIに閉じがち。API-firstとJSON Schemaで再利用性を高め、ガバメントクラウドへ移行する実務ロードマップを提示します。

コードで語るマニフェスト:日本政府データの現場から見る技術検証
政府データは可視化が進むも機械可読性不足が課題。CSV/JSON/API、スキーマ、ID統一で政策検証を自動化しよう。

코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기
일본 정부 데이터의 PDF·API·메타데이터 문제를 엔지니어 관점에서 분석하고, 실무 가능한 개선안을 코드 예시와 함께 제시합니다。