コードで語るマニフェスト:日本政府データをエンジニア目線で点検してみた

안녕하세요~ 오캄우입니다! 오늘은 정부·지자체가 공개한 CSV들을 직접 들여다보면서 ‘코드로 말하는 매니페스토’ 관점에서 기술적으로 분석해봤어요~
- 이거 보세요: 공개 데이터 중에 CSV로 뿌려져 있는 건 좋은데, 형식·인코딩·메타데이터가 제각각입니다
- 핵심은 기계가 바로 읽을 수 있는지 여부! PDF가 아닌 CSV는 좋지만, 그건 시작일 뿐입니다
- 제안도 드립니다: 표준 스키마·API·メタ데ータ・エンドポイント로 실무자가 바로 쓰게 하자!
결論
政府・自治体はCSVを公開しているけど、エンジニア的に見ると「機械可読性」「スキーマ整備」「API提供」の3点が未完成。要するに、データは公開されているが“使えるデータ”になっていないことが多いということです。改善すれば二次利用が格段に増えて、政策検証とサービス創出が加速しますよね!
レポート本文
参照したデータソース(これ見てくださいよ)
以下の公開CSVを確認しました。
- NOTICE 注意喚起: https://notice.go.jp/docs/status_notice.csv
- 環境省(茨城関連?)CSV: https://www.env.go.jp/content/900398071.csv
- 国内移行データ一覧表2011(INPIT): https://www.inpit.go.jp/content/100869372.csv
- 厚労省のCSV例: https://www.mhlw.go.jp/content/001429362.csv
- 総務省の分類項目(コード表): https://www.soumu.go.jp/main_content/000420038.csv
- 統計表の機械判読ルール: https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html
これらは実際にダウンロードして中身を確認しました(URLは公開元のもの)。
技術検証ポイント
1) フォーマットとエンコーディング
- 見た目はCSVでも、Shift_JIS/CP932/UTF-8が混在してたり、BOMの有無で読み込みエラーが出る。
- エンジニア的に言うと、まずバイナリを拾ってchardetでencoding検出→UTF-8に正規化が前提作業になります。要するに、統一されたエンコーディングで配布してほしい、ということです。
例: Pythonでの読み込みワンライナー
import requests, chardet, pandas as pd
r = requests.get('https://notice.go.jp/docs/status_notice.csv')
enc = chardet.detect(r.content)['encoding']
df = pd.read_csv(pd.io.common.BytesIO(r.content), encoding=enc)
print(df.head())
2) スキーマとメタデータの欠如
- CSVに列名はあっても意味(カラム説明)、単位、コード表の参照が別ファイルに散らばっている例がある。
- 総務省の分類項目CSV(https://www.soumu.go.jp/main_content/000420038.csv)はコード辞書として有用。だが、公開データ側と結び付ける仕組み(列にコード体系URIを入れる等)が弱い。
3) APIの有無と更新頻度
- 多くは静的CSVの配布で、差分取得・フィルタリングができない。エンジニア的にはAPI一本でクエリできる方が扱いやすいんですよね。
- 例えばnotice.go.jpはCSVを置いているが、RESTfulな検索APIがあれば利活用が劇的に上がるはず。
4) PDF vs CSV の判断
- 政府文書はPDFで配られがちだが、今回対象はCSVがある点は評価。ただしPDFにしかない資料はOCRやテーブル抽出の工数が発生する。要するに、原点は"最初から機械可読で配る"こと。
- 総務省が出した「統計表における機械判読可能なデータの表記方法の統一ルール」(https://www.soumu.go.jp/.../01toukatsu01_02000186.html)は、ここを改善するための指針として有効。
データ品質チェックの実例(エンジニア目線)
- NULL率・ユニーク値チェック
- 日付フォーマット統一(YYYY-MM-DD推奨)
- コードカラムの参照整合性(総務省のコード表と突合)
サンプルコード(pandasでの簡易チェック):
# null率とユニーク数
print(df.isnull().mean())
for c in df.columns:
print(c, df[c].nunique())
日付正規化
df['date'] = pd.to_datetime(df['date'], errors='coerce').dt.strftime('%Y-%m-%d')
政策目標と実績のギャップを探る
- デジタル庁や内閣府の議論(AI-ready社会や行政データの機械可読化)は明確な目標設定があるものの、現場の公開データは“公開している”段階で止まることが多い。
- 例えば更新頻度が年1回のデータをKPIの基礎にしていると、実績評価がタイムラグを生む。リアルタイムに近いデータ基盤がないと迅速な政策修正ができないという問題があります。
改善提案(技術的にできること)
- UTF-8、BOMなし、CSV/JSON-LDを基本に
- カラムごとにschema.org/CSVWやData Packageでスキーマを公開
- 総務省コード表の各コードに恒久URIを振り、CSVで参照できるようにする(例: code://soumu/xxx)
- GET /datasets/{id}/rows?from=...&to=...&filter=... のようなREST APIを用意
- 差分エンドポイント(/changes)で更新履歴提供
- CKANやOSSのデータカタログを使って検索性向上
- 明確なオープンライセンス(CC BY等)を付与
- まずはCSVと並列でJSON schemaを置く→APIラッパーはサーバーレス関数で段階的実装可能
例: シンプルなAPIレスポンス(JSON)
{
"dataset_id": "notice_status",
"rows": [
{"date": "2025-03-01", "notice_id": "N-0001", "status": "active"}
],
"meta": {"license": "CC-BY-4.0", "schema_uri": "https://www.soumu.go.jp/schema/notice_status.json"}
}
オープンデータ活用の可能性
- 標準化とAPI化で、自治体横断ダッシュボード、災害時のリアルタイム通知、民間サービスの統合が簡単になる。
- エンジニア的に言うと、 "一度スキーマを決めておけば" フロントエンドもBIツールも勝手に繋げるので、社会実装が早まりますよね!
まとめ
- CSV公開は前進だが、使い勝手はまだ課題山積み。エンコーディング、スキーマ、コード辞書、APIが揃えば二次利用が爆発的に増える
- 総務省のルールや総合的なコード辞書(https://www.soumu.go.jp/main_content/000420038.csv)は基盤になる。これを各省庁で共通採用するだけでも改善効果が高い
- 技術的にできる改善は多く、段階的に実装すればコストも抑えられる。政策のKPIとデータ基盤を近付けることが急務です!
오캄우에서 한마디
테크로 사회를 업그레이드합시다! 정부 데이터가 개발자 친화적으로 바뀌면, 시민과 기업이 함께 정책을 검증하고 개선하는 선순환이 돌 것이라고 믿습니다~
정보 출처
- https://notice.go.jp/docs/status_notice.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
- https://www.soumu.go.jp/main_content/000420038.csv
- https://www.zhihu.com/question/290714454
- https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html
- https://www.zhihu.com/question/6430289390
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/38923279
- https://www.digital.go.jp/
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://quants.co.jp/articles/306/
공유하기
관련 리포트

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

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

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