用代码审视公民政策:从CSV到API的治理检验

- 这篇文章用工程师视角检视政府/自治体公开数据的可用性、格式与可操作性
- 以日本官方CSV样本、地方評価レポート和UX议题为线索,指出PDF vs CSV的现实差异与问题
- 给出可执行的技术改进建议与简单代码范例,让政策宣言能真正被数据和开发者驱动
結論
どうもおかむーです!结论先说:政策要靠数据说话,但现在很多行政数据“在说话”的格式却是人类用的PDF而不是机器友好的API/CSV/JSON。要把マニフェスト(施政纲领)变成可验证、可复现的“代码”,需要把数据做成结构化、可发现、带元数据、有稳定API并保证可追溯性。
レポート本文
エンジニア的に言うと、政府数据治理的好坏直接决定了能不能用代码去验证政策效果。これ見てくださいよ:国のサイトやデジタル庁(digital.go.jp)、内閣府のCSV(search result 11,13)など、CSVファイルは出ている。ただし散らばっててメタデータやAPIが足りないんですよね。
1) 現状把脈:PDF、散落的CSV、そして評価レポート
- 多くの報告書や評価はPDFベースで公開される(人間には読めるが機械処理が面倒)。要するに、データは「見えるけど使えない」状態です。
- 一方で、政府はCSVを公開する努力もしている(例:内閣府・各種CSV, digital.go.jpの病院CSVサンプル、交付金の実績評価ページ等 / 検索結果11,13,9)。でもファイルごとにカラム名やエンコーディングが違う、緯度経度のフォーマットが統一されてない等の問題が残る。
- UX面の指摘(検索結果2,4)からもわかる通り、自治体デジタル窓口は「使われない」ことが多い。これはUIだけの問題じゃなく、バックエンドのデータ流通が整ってないからです。
2) データ可用性・品質の技術チェックポイント
- 機械可読性:PDF vs CSV/JSON/GeoJSON。PDFはレイアウト依存でスクレイピングが必要。要するに「非推奨」です。
- スキーマの安定性:同一項目がファイル毎に名称や型が違う。バージョニング、スキーマ定義が必要。
- メタデータ:更新日、ライセンス、発行機関、APIエンドポイントが付与されていないことが多い。
- APIの有無:公開CSVはあるがREST APIが無ければリアルタイム利用やCORS対応ができない。
- 空間情報:病院CSVに緯度経度がある例があるが(search result 13)、座標系や精度が明記されていないケースがある。
3) 政策KPIと実績のギャップの検証(例:デジタル田園都市構想)
- 交付金やKPIの達成状況は公表されているが、KPI数値と元データが紐づいていない例あり(search result 7,9)。
- エンジニア的に言うと、KPIを一本の時系列APIで取得できれば、差分計算や自動監査が可能になるんです。
4) 具体的な技術改善提案
- 常時公開する「データカタログ」:各データセットにスキーマ(JSON Schema)、更新履歴、ライセンス、サンプルを添付する。推奨フォーマットはCSV/JSON/GeoJSONとし、PDFは人向けの説明に留める。
- RESTful API + OpenAPI Spec:時系列やページネーションをサポートし、CORSを有効に。これでフロント/外部開発者が自由に利用できる。
- データ検証パイプライン:CIでCSVのカラム・型・NULL率・ジオバリデーションをチェック。エラーが出れば公開を止める仕組み。
- 永続的識別子:データセットに恒久URL/IDを付与(例:/api/v1/datasets/kpi/digital_initiative/)
- UXの改善はAPI設計から:フォームや窓口はAPI一本で集約し、バックエンドでバリデーションと多言語対応を行う。
5) 小さなコード例 — CSVを拾ってKPI差分を出す(Python)
import pandas as pd
例: 内閣府のCSV URLを直接読む
url = 'https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv'
df = pd.read_csv(url, encoding='utf-8', skiprows=0)
必要な列をノーマライズ
df.columns = [c.strip() for c in df.columns]
KPI列のサンプル検査
print(df[['年度','合計']].head())
時系列差分
df['合計'] = pd.to_numeric(df['合計'], errors='coerce')
df['diff'] = df['合計'].diff()
print(df[['年度','合計','diff']].tail())
要するに、API一本とちゃんとしたスキーマがあればこのコードはもっと短く、堅牢に書けますよね。
6) 活用シナリオ:自治体版“監査ダッシュボード”を作る
- データ取得:APIで交付金実績・支出・事業指標を取得
- 検証:CIでデータ整合性チェック、KPIと実績の乖離を自動検出
- 公開:ダッシュボードに埋め込み、オープンデータページにリンク
まとめ
- PDFは人間用、CSV/JSON/APIは機械用。行政は両方を意識して公開を分離すべきです。
- スキーマ、メタデータ、OpenAPI、CI検証、永続IDが揃えば、政策は「検証可能なコード」になります。
- UX問題の多くはデータ流通の欠如に起因するので、バックエンド整備がUX改善の近道です。
おかむーから一言
僕は技術で政策を検証したいんです。データを“ただ出す”だけじゃなく、使いやすく、追跡できる形にしてほしい。エンジニアの手に渡れば、政策はもっと速く改善できるんですよ!
信息来源
- https://www.pref.nagano.lg.jp/
- https://metidx-gov.note.jp/n/n9468573c213b
- https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E8%A1%8C%E6%94%BF%E6%A9%9F%E9%96%A2
- https://picks-design.com/blog/5751/
- https://www.gyosei.ainosato.works/entry/gyosei-definition
- 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.city.sukagawa.fukushima.jp/shisei/gyoseiunei/keikaku/chiho_sosei/1015604/4045.html
- https://biz.kddi.com/content/column/smartwork/what-is-digital/
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.env.go.jp/content/900398071.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-42.csv
相关报告

代码で語るマニフェスト:以香川县公共设施预约系统为例的技术与数据审视
以香川县公共设施预约系统为例,从API、数据格式与标准化角度检视自治体系统,给出可执行的技术改进方案与代码示例。

用代码说话的宣言:从机器可读性到API化,解读日本数字化政策的数据工程路径
从Digital庁到e-Stat,评估日本数位政策的数据交付形态,提出API化与工程化改进路线,附代码与验证示例。

コードで語るマニフェスト:日本政府データをエンジニア視点で検証する
政府のマニフェストをデータとコードで検証。PDF多用やAPI断片化を指摘し、e-StatやJapan Dashboardを例に具体的な改善案とコード例を提示します。