用代码说话的宣言:从数据与工程看政府/自治体的公开数据实务

どうも〜おかむーです!今天来聊点既技术又政策的事——用工程视角检验政府和自治体的数据发布与系统设计,按「コードで語るマニフェスト」来做。
- 这篇文章会把公开数据的机器可读性、API 有无、CSV/PDF 问题、以及 KPI 的数值差距在工程层面拆解
- 给出具体的代码示例和可执行的改进建议(CSV 拉取、编码处理、PDF 表格抽取、API 设计)
- 目标是从「能被工程系统消化」的角度,提出可落地的 GovTech 改善路线图
結論
日本的各级政府已经开始把数据放出来(见 Digital庁、内閣官房等文档),但机器可读性与 API 化程度参差不齐。エンジニア的眼光看,这是典型的「人可读优先、机可读次之」问题。要让数据真正产生社会价值,必须把数据当成产品:标准化格式、明确 schema、稳定 API、版本管理、以及 KPI 自动化指标链路。
要点:
- 立即可做:把 PDF 中的表格优先导出为 CSV/JSON,提供 OpenAPI 描述;对现有 CSV 明确编码(多为 Shift_JIS/UTF-8)并提供 schema
- 中期改进:建立数据目录(DCAT)、API 速率/认证策略、数据质量监控与变更日志
- 长期目标:为生成 AI 提供 "AI-ready" 数据集(内閣官房提到的方向),包括结构化、注释和许可信息
报告正文
现状速览:有哪些公开数据可用?这些数据长什么样
これ見てくださいよ:搜索结果里有很多 CSV 链接(例:NOTICE 的 NICTER CSV https://notice.go.jp/docs/status_nicter.csv、各省的 CSV 文件 https://www.jinji.go.jp/content/900024615.csv、環境省の CSV https://www.env.go.jp/content/900398071.csv 等)。这很好——数据确实在公开。但是:
- 格式不统一:有的直接是 CSV,有的则把关键指标埋在 PDF(参见各类政策评估 PDF,如デジタル田園都市国家構想の評価資料)
- 编码问题常见:日本政府数据有时采用 Shift_JIS,直接用 UTF-8 读取会乱码
- 元数据缺失:缺少 schema、字段说明、更新频率、ライセンス信息
要するに:数据是有的,但对机器友好度不足,也缺乏 API 化。
機械可読性 & PDF vs CSV 的技术痛点
- PDF 表格:人类可读但机器很难稳健解析。要么用 tabula/ Camelot/Adobe OCR,要么要求数据发布方直接提供 CSV/JSON。
- CSV 的质量:常见问题包括缺少 header、字段类型不一致、日期格式不统一、编码不明示。
- API 缺席:很多场景是把静态文件放到 Web 提供下载,没提供 REST API 或 OpenAPI 定义,集成成本高。
技术举例:如果要把某个政策的 KPI 从 PDF 变成可监控的时间序列,工程流程通常是:PDF -> 表格抽取(tabula/ocr)-> 清洗(pandas)-> 标准化(ISO 日期、统一单位)-> 写入时序 DB(Prometheus/Timescale)-> 可视化(Grafana)。
API 与数据工程建议(具体、可落地)
代码示例:拉取 CSV,处理编码与日期,导出 JSONL(可直接喂给 ML 管道)
# 要点:考虑 encoding 检测、chunksize(大文件)、parse_dates
import requests
import chardet
import pandas as pd
from io import BytesIO
url = 'https://notice.go.jp/docs/status_nicter.csv'
resp = requests.get(url)
raw = resp.content
enc = chardet.detect(raw)['encoding'] or 'utf-8'
df = pd.read_csv(BytesIO(raw), encoding=enc, parse_dates=['date'], dayfirst=False)
标准化列名
df.columns = [c.strip().lower().replace(' ', '_') for c in df.columns]
导出 JSON Lines,方便 downstream
with open('nicter.jsonl', 'w', encoding='utf-8') as f:
for rec in df.to_dict(orient='records'):
f.write(json.dumps(rec, ensure_ascii=False) + '\n')
エンジニア的に言うと、這是一個 ETL 的最簡版:抓取 -> 檢測編碼 -> 解析 -> 清理 -> 導出。真實環境還要加 retry、監控、schema 驗證 (great_expectations)、與錯誤告警。
KPI 与実績差距的工程化分析
数字化补助金或交付金类文件(例:デジタル田園都市国家構想交付金の KPI 資料)通常会列 KPI 与実績。問題点常见于:
- KPI 定義模糊(衡量口径不同)→ 自动化无法对齐
- 数据更新滞后或仅年度汇总 → 无法做实时监控
- 数据分散在多个 CSV/PDF → 合并成本高
改进方案:把 KPI 作为「可查询的指标 API」来提供。示例做法:
- 为每个 KPI 建立 time-series 端点 /kpi/{kpi_id}/timeseries
- 每次更新都写入 immutable event log(append-only),保留历史
- 提供 machine-readable metadata:测量口径、数据来源、置信区间
开放データ到 AI 应用的路径
Digital 庁的 Data for AI 方向(搜索结果有提到)意味着需要把政府数据整理成模型可消化的格式:
- 结构化数据(CSV/Parquet/JSONL),注释字段语义
- 文本类政策文件需要做 OCR + 段落/实体标注(NER)
- 提供许可声明(商用/非商用),让民间企业安心训练模型
此外,考虑发布小规模的“benchmark datasets”供研究者验证政策影响与模型能力。
まとめ
- 现在的公开数据量在增长,但工程友好度不足。PDF 仍是障碍,CSV 虽多却常缺乏 schema 与编码声明
- 最优先做的事:把关键表格从 PDF 导成 CSV/JSON,明确编码与 schema,提供 OpenAPI
- 中长期要建设数据目录、版本化与 KPI API,把数据当作产品来运维
- 对于想做 GovTech 的工程团队:先从小批次 ETL + schema 验证做起,慢慢把人工清洗替换为自动化流水线
おかむーから一言
どうも〜おかむーです!テクノロジーで社会をアップデートするってのは口だけじゃ意味ないんですよ。コードで語るマニフェスト、まずは CSV を一本、API を一本公開するところから始めましょう!
信息来源
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/6430289390
- https://digital-gov.note.jp/n/neb45f4883f23
- 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://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
相关报告

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

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

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