代码视角看政府数据:从PDF到API的可用性检验

大家好,我是おかむー!今天要用一点工程师的眼光,来把政府和自治体的数据拿出来掰一掰、测一测~
- 这篇文章用“代码说话”的方式评估政府数据的機械可読性与可用性
- 我会指出常见问题(PDF、编码、缺元数据)并给出工程级改善建议
- 最后给出简单代码示例,让你能把散落的CSV拉起来做分析
結論
看这个:公开数据光放PDF跟散落CSV不够!要真正变成可以被AI/分析系统吃掉的“API级数据”,需要统一格式、提供机器可读的描述(schema/CSVW/JSON-LD)、并建立持续的品質检测流水线。エンジニア的に言うと、これはAPI一本で解決する話なんですよ。
レポート本文
何が見えてるか(ソース参照)
これ見てくださいよ:国や自治体はCSVを公開してるケースもある(例:notice.go.jp の NICTER 注意喚起 CSV、jinji.go.jp や env.go.jp のCSVファイルなど)が、公開のされ方がバラバラなんです。総務省は「統計表における機械判読可能なデータの表記方法の統一ルール」を出していて(2020/12/18)、内閣官房も機械可読性の重要性を指摘してます(cas.go.jp 資料)。でも現場を見るとPDFで配られてたり、CSVが存在してもメタデータが欠けてたりする。
ポイント:
- PDFに埋め込まれた表は機械で取り出しにくい(OCRや表抽出が必要)
- CSVは存在してもエンコーディング(Shift_JIS vs UTF-8)、列名の不統一、日付フォーマット不一致がある
- APIは未整備で、データカタログやスキーマ記述がないため自動化が難しい
要するに、表があるだけでは“使えるデータ”とは言えないということです。
データ品質とKPIギャップの観点
例えば「デジタル田園都市国家構想交付金」の実績報告資料を見ると(県のPDFなど)、KPIと実績は提示されているけど、項目間の対応関係や時系列データはCSVで整理されていないことが多い(山口県の資料では採択事業や実績額がPDFで示されているが、機械判読しやすい形での公開は限定的)。この状態だと政策評価や再現可能な監査がしづらいんですよね。
技術的な検証(エンジニア視点)
- メタデータ不足:CSVにschema(列型・単位・欠損意味)がない。これ、データパイプラインを作るときの最大のハードルです。
- 形式バラつき:同じ指標でも自治体ごとに列名や単位が違う。正規化コストが高い。
- エンコーディングとロケール:日本の古いCSVはShift_JISで来ることが多くて、UTF-8前提のツールで読み込むと文字化けする。
改善提案(具体的にやれること)
- すべての公開データはCSV/JSON/Parquetで併記。PDFは人向けの説明に限定。
- 各データセットにCSVW/JSON-LDでschemaを付与(列名、型、単位、更新頻度、ライセンスを明記)
- 公共のデータカタログ(DCAT)を採用してAPIエンドポイントを一覧化
- CIでデータ品質チェックを回す:列数チェック、型チェック、nullレート、整合性(外部参照の存在)
- 小さくても良いのでREST/GraphQLのAPIを用意して、認証不要の読み取り専用エンドポイントを公開
技術スタック例:GitHub Actions + pandas/pyarrowでETL、AWS S3公開、OpenAPI仕様でAPI管理。
実践コード例
以下は、公開されているCSVを拾って読み、UTF-8化して簡単なスキーマチェックをするPythonの例です(エンジニア的に言うと、こういうスクリプトでまずは“機械可読化”の第一歩を踏めます!):
import pandas as pd
url = 'https://notice.go.jp/docs/status_nicter.csv'
Shift_JISの可能性があるのでまずは推測して読み込み
try:
df = pd.read_csv(url, encoding='utf-8')
except Exception:
df = pd.read_csv(url, encoding='shift_jis')
簡単なスキーマチェック
expected_cols = ['datetime', 'level', 'message']
print('columns:', df.columns.tolist())
for c in expected_cols:
if c not in df.columns:
print('Missing column:', c)
JSONに変換して出力
print(df.head().to_json(orient='records', force_ascii=False))
さらに進めるなら、panderaやjsonschemaでスキーマ検証を自動化してCIに組み込むと良いです。
オープンデータ活用提案
- データハブを作って自治体ごとのスキーママッピングを共有(共通の辞書を持つ)
- 二次利用を想定したサンプルNotebookやクエリ集を公開して、データ利活用の敷居を下げる
- KPI評価レポジトリをオープン化して、政策の数値目標と実績の差分を自動更新するダッシュボードを提供
これで住民も研究者もNPOも政策評価がやりやすくなりますよね!
まとめ
- 政府・自治体はCSVを出しているが、機械可読性やメタデータが不十分で自動化が難しい
- PDFで配るだけはダメ。CSV/JSONに加えてschema(CSVW/JSON-LD)とAPIを用意するのが重要
- エンジニアリングのプラクティス(CIでの品質チェック、OpenAPI、データカタログ)を導入すれば、政策評価やAI利活用の基盤になる
おかむーから一言
我是两度创业的おかむー,在GovTech和AI方向写过不少代码。技术能把行政的「見えない部分」变成可检验的事实,让政策更透明,也能真正推动社会升级!
信息来源
- 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://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
- 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://biz.kddi.com/content/column/smartwork/what-is-digital/
相关报告

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

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

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