代码で語るマニフェスト:从CSV看政府数据的可用性与改进路线

- 这篇文章用工程师视角把几个政府CSV文件拆开看,关注可机读性与API化的可能性
- 我会示范如何用小段Python代码做基本验证,并指出常见问题与改进建议
- 最后给出可落地的工程与政策配套提案,让开放数据不只是摆在网站上而已
結論
大家好,我是おかむー!结论先说:政府公开CSV已经比PDF好太多了,但现在的做法还停在“文件发布”阶段,缺乏API、元数据、版本治理与质量保证。工程师角度来说,真正有价值的是“可持续获取(API/流式/镜像)+明确schema+唯一标识+ provenance”,要是能把这些补上,开放数据才会被企业与公民持续利用!
レポート本文
これ見てくださいよ:手头的数据源
- NOTICE(https://notice.go.jp/docs/status_notice.csv)
- 环境省 茨城県データ(https://www.env.go.jp/content/900398071.csv,约463KB)
- INPIT 国内移行データ(https://www.inpit.go.jp/content/100869372.csv)
- 厚労省 救護施設(https://www.mhlw.go.jp/content/001682075.csv,约8KB)
- 総務省 全国(https://www.soumu.go.jp/main_content/000323625.csv,约104KB)
这些都是直接给CSV链接,能下载是好事!不过工程师会关心的不只是下载,而是后续能否自动化消费。下面我按几个维度来检验:可发现性、格式一致性、schema明确性、API可用性、质量与更新策略。
1) 可发现性与元数据
现状:文件直接放在网站或/docs路径下,缺少统一Catalog(Data Catalog / DCAT)和机器可读元数据(如data.json、schema.json)。
影响:没有catalog就难做自动发现与订阅,企业不能轻易把数据纳入ETL流水线。
改进建议:
- 建议提供Data Catalog(例如用CKAN或DataHub),并暴露DCAT-AP或data.json接口
- 对每个资源提供schema(CSV Schema / JSON Schema)、更新频率、最小许可说明(CC BY等)
2) 格式与可机读性(CSV vs PDF)
现状:幸好都是CSV,不是PDF!但“CSV是万能”的误解很危险:没有统一charset、分隔符、日期格式、ID规范就会出错。
工程师小技巧(示例):
import pandas as pd
url = 'https://www.soumu.go.jp/main_content/000323625.csv'
df = pd.read_csv(url, encoding='utf-8', dtype=str)
print(df.head())
再检验日期列:
for c in df.columns:
print(c, df[c].isnull().sum())
要点:指定encoding、把所有字段先当字符串读入再做类型转换;日期用parse_dates或dateutil严格解析。
3) API的缺乏与抓取脆弱性
现状:多数资源只给文件链接而无API,无法做分页、增量同步或查询过滤。
影响:每次都得全量下载,占宽带与处理资源;对于频繁更新数据(例如通報、通知)灾难级低效。
改进建议:
- 提供REST/GraphQL/SQL-over-HTTP接口,支持增量(since=timestamp)查询
- 支持CORS与合理的速率限制(rate limit),并提供OpenAPI spec
4) 数据质量与治理
现状:文件大小提示(8KB〜463KB)差异大,说明数据粒度不一。且常见问题包括:重复行、缺失主键、字段不稳定。
要做的验证:唯一性检查、外键一致性、缺失率统计、时间序列连续性测试。
示例代码(去重与唯一主键检查):
pk = 'facility_id'
if df[pk].duplicated().any():
print('警告:存在重复主键!')
else:
print('主键看起来OK')
治理建议:
- 对关键数据集设定schema contract(含字段类型、是否可空、主键)
- 引入CI(每次文件更新触发数据质量检查)并把结果公开(status badge)
5) 政策目标与数据指标的匹配
我们要把数据与政策目标绑在一起:例如救護施設的数目、収容能力、更新频度等,应当和政策目标对齐。现在常见的情况是“政策定了目标,但公开数据无法直接验证达成度”。
做法:
- 在每个数据集metadata中声明可检验的KPI表达式(比如:available_beds / required_beds >= 1.0)
- 提供示例SQL或Jupyter Notebook,展示如何复现政府发布的统计数字
6) 开放数据的利活用提案(実践的)
- 建立实时镜像和事件流:对通知类数据提供Kafka/PSQL logical replication/Change Data Capture(CDC),让使用方通过订阅获得增量更新
- 提供标准SDK:官方Python/JS SDK封装认证、分页、重试逻辑,降低採用门槛
- 举办数据挑战赛(Hackathon)并开放“沙盒API key”,促进民间利用
まとめ
- CSV比PDF好,但“放文件”并非开放数据完成品;关键是可持续获取与明确的schema
- 优先级推荐:1) 建立Data Catalog与schema 2) 提供增量API和OpenAPI spec 3) 建立CI做数据质量门禁
- 技术上用现成组件(CKAN、OpenAPI、Airbyte/CDC)就能把现状大幅改善,关键是组织上把数据治理当作政策交付物的一部分
おかむーから一言
技术可以把政策的“承诺”变成可验证的东西!政务公开不是把文件放到站点就结束,而是把数据当成产品来打磨才行。我是おかむー,大家一起把社会的数据基础设施建好吧!
信息来源
- 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/001682075.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- https://www.intec.co.jp/column/smartcity-08.html
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
- https://www.digital.go.jp/resources/data_case_study_private
- https://www.manawin.jp/languagegap/general/koukyou-kouteki/
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://ai-government-portal.com/%E5%85%AC%E5%8B%99%E5%93%A1%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E6%8C%91%E6%88%A6%E3%80%8C%E8%A1%8C%E6%94%BFux%E6%94%B9%E5%96%84%E6%A5%AD%E5%8B%99%E5%A7%94%E8%A8%97%E3%80%8D%E5%AE%8C%E5%85%A8%E3%82%AC/
- https://www.zhihu.com/question/38923279
相关报告

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

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

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