コードで語るマニフェスト:日本の政府データをエンジニア視点で検証する

どうも〜おかむーです! 안녕하세요, 오카무입니다!
- 정부·지자체가 공개한 CSV/JSON의 기계가독성은 제각각이다
- PDF에 묶여있는 지표는 분석을 막고, API 부재는 재사용을 어렵게 한다
- エンジニア的に言うと、標準化とAPI化で再現性と透明性が一気に上がるんですよ
結論
정부·지자체의データ公開は量だけでなく“形”が重要。PDFに埋め込まれた表やメタデータの欠如、フォーマットの不統一が利活用の最大の障壁になっている。要するに、CSV/JSON/Schemaをきちんと整備して、OpenAPIなどでAPI提供すれば価値が一気に跳ねるということです。
本文:データ現場をコードで見る
まず、これ見てくださいよ。政府の公式CSVが直接ダウンロードできる例はある(例: https://notice.go.jp/docs/status_nicter.csv、https://www.mhlw.go.jp/content/001429362.csv)。一方で、主要な施策の実績値はPDFに埋め込まれて公開されることが多く、機械で取り出すのが辛い。要するに、機械可読性が低いとデータは使われないんです。
実例チェックリスト
- URL直リンクでCSVが落とせるか(OK: notice.go.jp, jinji.go.jp等)
- ヘッダとエンコーディングが明記されているか(UTF-8 vs Shift_JIS問題)
- メタデータ(単位、更新頻度、最終更新日)が添付されているか
- APIエンドポイントがあるか、OpenAPI定義が公開されているか
これらを満たしていれば即座に再利用できるんですけど、現場はまちまち。特に自治体ごとにCSVの列名が違ったり、日付フォーマットが統一されていなかったりする。エンジニア的に言うと、正規化されてないスキーマはデータパイプラインの地雷ですよ。
技術検証:短いコードで確認する方法
エンジニアならわかると思うんですけど、APIがなくてもまずはCSVを叩いてヘッダとエンコーディングをチェックするだけで品質の大枠はわかります。例えばPython+pandasでの簡易チェック:
import requests
import pandas as pd
from io import BytesIO
url = 'https://notice.go.jp/docs/status_nicter.csv'
r = requests.get(url)
encoding推定
r.encoding = 'utf-8'
df = pd.read_csv(BytesIO(r.content))
print(df.columns)
print(df.dtypes)
上のコードでエラーが出る場合、Shift_JISや不正な改行、BOMなどの問題が疑われます。要するに前処理コストが高いデータは、現場のアナリストの時間を食うんですよ。
ポリシーの数値目標と実績ギャップの見方
政策目標は基本的に“目標値”と“実績値”の比較で評価されるはず。ただ、実績がPDFで公開されていると、時系列分析や差分計算が手作業になってしまう。
実務的なワークフロー:
- 目標値(政策文書)を機械可読化(YAML/JSON)
- 実績値は周期的にCSVで公開、ETLでデータベースへ投入
- SQLで目標達成率を算出し、ダッシュボードへ反映
SQL例(単純):
SELECT
year,
SUM(actual) / SUM(target) AS achievement_rate
FROM policy_metrics
GROUP BY year;
要するに、自動化されていれば「目標と実績のギャップ」を継続的にモニタリングできる。今はここが断絶しているケースが多いんです。
API設計と公開の具体的提案
改善策は具体的に3つ:
1) 機械可読化を義務化する
- 政策レポートはPDFでの公表を残してもOK。ただしCSV/JSONの機械可読版を同時に公開することを要件にする
2) CSV-W / Data Package を導入
- カラムの意味、単位、更新頻度を機械判読可能にする(CSV on the Web, Table Schema)
3) REST/GraphQL API化とOpenAPI公開
- 例: GET /api/v1/policy_metrics?year=2024
- レスポンスはJSON-StatやJSON-LDでメタデータ付きにする
簡単なOpenAPIスニペット例:
openapi: 3.0.0
paths:
/api/v1/metrics:
get:
parameters:
- name: year
in: query
schema:
type: integer
responses:
'200':
description: JSON array of metrics with metadata
継続可能な実装パターン
- CIでCSVのスキーマチェック(GitHub Actions + csvlint)
- データパイプラインはAirflow or Prefectで定期実行
- 公開用はCDNとAPIGatewayでスケーラブルに
まとめ
- PDFだけの公開はデータの価値を下げる。CSV/JSON + スキーマ + API化が鍵
- 技術的には既存のOSS(CSVW, Data Package, JSON-Stat)を組み合わせるだけで改善可能
- 小さく始めて、CIで品質担保、APIで再利用を促進するのが現実的な道
おかむーから一言
テクノロジーで社会をアップデートするのは本気で楽しいんですよ。まずは1つ、CSVをUTF-8で出すことから始めましょう!
정보 출처
- https://www.zhihu.com/question/40553450
- https://www.govtechtokyo.or.jp/services/data-utilization/
- https://www.zhihu.com/question/372341437
- https://note.govtechtokyo.jp/n/n77785a8254d6
- https://www.zhihu.com/tardis/zm/art/1924492115896960699
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://www.trans-plus.jp/blog/column/202210_municipality-dx
- https://www.zhihu.com/question/38923279
- https://notice.go.jp/docs/status_nicter.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001429362.csv
공유하기
관련 리포트

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

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

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