代码说话的施政书:从城市开放数据看可用性与改进空间

大家好,我是おかむー!今天要用工程师的视角聊聊政府和自治体的开放数据,带点技术干货也带点吐槽~
- 这篇文章用实际自治体开放数据目录做检视,侧重机器可读性、API 与格式标准化
- 我会示范用 CKAN/API 拉数据的基本流程,并指出常见的 PDF/CSV、Schema 问题
- 最后给出可落地的技术改进建议,让这些数据更好服务政策与市民
結論
总体来说,日本各级自治体已经把很多资料放出来,门户像东京(catalog.data.metro.tokyo.lg.jp)、横滨(data.city.yokohama.lg.jp)、埼玉、以及使用 CKAN 的大仙市都很积极,但真正能被工程化消费(API-first、schema 明确、稳定字段)的是少数。要点是:公开≠可用,工程上我们需要统一的机器可读契约(schema、时间戳、ライセンス)、稳定 API,以及例示用例(sample queries、コード片段)。
レポート本文
1) 现状观察:公开平台 vs 可用数据
これ見てくださいよ:很多自治体把数据放在公开目录里(例如东京都的数据目录、横滨市的 dataset 列表、CKAN 实作的大仙市),格式常见为 CSV、XLSX,甚至还是 PDF。PDF 的问题就不用多说了——工程师角度说,PDF 就是人看用的,不是机器吃的!要するに(要点是),把数据做成 CSV/JSON 并提供 schema 才是合格的。
- 代表性实例:东京水道局把“明治32年以降的都営水道水源量”做成 CSV(可用!)
- 对比:有些表格在门户只提供 XLSX 或没有说明字段含义,导致字段解释工作成本高
2) API 与平台生态
CKAN 的出现是好事(大仙市示例),它内建 API(/api/3/action/package_list、resource_show)可以 programmatic 访问。工程上推荐做法:
- 提供 CKAN 或 OpenAPI 风格的 REST endpoint
- 返回 JSON-LD / DCAT-metadata,方便 cataloging
- 对大型表格提供分页/筛选参数,避免下载整个 CSV
简单示例:用 CKAN API 列出数据集并读取第一个 CSV 资源(Python)
import requests
import pandas as pd
CKAN_BASE = 'https://{your-ckan-domain}/api/3/action'
列出数据集
r = requests.get(f"{CKAN_BASE}/package_list")
datasets = r.json()['result']
获取某一数据集的 resource URL
pkg = requests.get(f"{CKAN_BASE}/package_show?id={datasets[0]}").json()['result']
for res in pkg['resources']:
if res['format'].lower() in ('csv','text/csv'):
df = pd.read_csv(res['url'])
print(df.head())
break
要点:把 resource 的 format、schema、更新频度、最晚更新时间(last_modified)放到 metadata,工程上很关键。
3) 数据质量与政策目标的比对
政策常有量化目标(例:某都市的公共施設予約利用率、下水道水質指標、介護施設数)。要检验目标达成率,需要:稳定的 time-series 数据、统一的地理単位(市区町村コード)、以及明确的度量单位。
举例:若要比较“介護サービス事業所数”的目标与実績,常见问题包括:
- 数据更新不定期(更新日缺失)→ 无法正确算年增长率
- 列名不一致(事業所数、事業者数、施設数)→ 需大量前处理
工程处理流程示范(伪代码):
4) 可行的改进建议(工程清单)
下列建议既现实又能快速提升可用性:
- 统一 metadata 模型:采 DCAT + JSON Schema(字段、类型、单位、缺失值说明)
- 所有表格同时提供 CSV 与 JSON(或直接提供行式 API)
- 对于静态大型表,提供分块下载(分页)和 ETag/If-Modified-Since 支持
- 提供示例クエリ 与 简易 SDK(Python snippets)在 dataset 页面
- 发布数据质量报告:缺失率、重复行、更新时间
- 对涉及个人情報或敏感项的数据提供去識別化方案与合成数据样本,方便开发者测试
5) 开放数据的高阶场景:政策闭环与自动化
エンジニア的に言うと,若能把数据 pipeline 与政策目标连结,就能实现持续监测:
- 将数据上报 → 自动跑质量检查 → 指标计算 → Dashboard 报警
- 通过 API 给第三方开发者提供 sandbox 数据,激发创新(例如基于オープンデータ的预约最適化、IoT 结合河川监测)
技术栈建议:Airflow(调度)、Great Expectations(数据质量)、CKAN/Dataverse(Catalog)、Superset/Metabase(可视化)。
まとめ
要点回顾:自治体把数据公开是基础,但要变成政策与服务的燃料,需要机器可读、稳定 API、明确 schema 与 sample code。工程上我们重视 metadata、时间戳、分页、以及对外示例。只要按工程约定去做,开放数据就能真正驱动政策改进和市民服务创新!
おかむーから一言
技术能把复杂的政策问题拆解成可验证的问题,这是我的信念。给自治体的建议是:把数据当成产品来管理,持续迭代,不是一次性上传就完事。我要把这些东西做成开源的工具链,帮更多城市把数据变成力量!
信息来源
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://www.city.niigata.lg.jp/shisei/seisaku/it/open-data/index.html
- https://opendata.pref.saitama.lg.jp/datasets
- https://www.city.daisen.lg.jp/open-data/dataset/
- https://data.city.yokohama.lg.jp/dataset/
- https://www.city.toyonaka.osaka.jp/shisetsu/annai.html
- https://www.intec.co.jp/column/smartcity-08.html
- https://reserve.opas.jp/osakafu/Welcome.cgi
- https://www.digital.go.jp/resources/data_case_study_private
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- 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
相关报告

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

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

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