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

IT政策提案
代码で語るマニフェスト:从API与CSV看政府数据的可用性与改进路径

どうも〜おかむーです!今天来聊聊政府数据那点事儿,技术角度切入,像写代码一样把政策和数据对齐~

  • 这篇文章要点三行:
- 现在政府/自治体已经有API目录(e-Gov、東京都Open Data、DATA GO JP等),但“机器可读性”落实参差不齐。

- 要点是把PDF→CSV/JSON、把零散目录→统一API、并建立数据质量CI;技术上完全可做!

- 我给出审计思路、示例代码和工程级改进建议,能让政策目标变成可验证的工程指标。

結論

现状是「有数据但不够可用」。政策层(例:デジタル庁关于行政データの機械可読性规则)已经在推CSV/Excel等机器可读格式,但实际目录里仍有大量PDF、缺乏统一OpenAPI规格与质量指标。要把“开放数据”变成能落地的公共产品,需要从工程化的角度做三件事:1) 规范格式与元数据(CSV/JSON + DCAT/CSVW/OpenAPI);2) 建立自动化质量检测(schema 校验、CI、指标监控);3) 提供可发现的API目录与样例代码,降低再利用门槛。

レポート本文

1) 现状与证据链

これ見てくださいよ:政府已有官方汇集与API入口——例如 e-Gov 行政API(https://www.e-gov.go.jp/digital-government/api)、東京都のOpen Data API(https://portal.data.metro.tokyo.lg.jp/opendata-api/)、DATA GO JP 与 e-Stat 等(參見 https://japan-opendata.github.io/awesome-japan-opendata/)。同时,デジタル庁就“機械可読性”给出了明确规则草案与决定(参见 https://www.digital.go.jp/.../20260331_meeting_executive_outline_06.pdf)。要するに,政策框架有了,但实现上还有差距。

2) 常见技术问题(エンジニア的に言うと)

  • 数据以PDF发布:解析成本高、结构不稳。要するに人手工翻表的工作量太大。
  • API不统一:没有OpenAPI/JSON Schema,字段命名不一,缺乏语义标识符。
  • 元数据缺失:缺少描述、许可证、更新频率、schema,难以自动发现和治理。
  • 质量不可测:没有数据完整性、时间戳、版本号等指标。

3) 如何做审计 — 简单的工程流程与示例代码

目标:计算“机器可读数据集比例”(CSV/JSON/Excel vs PDF)。思路:抓取API目录/数据目录页面、解析每个资源的MIME或扩展名、统计。

示例(Python伪代码):

import requests, pandas as pd

1) 抓取 e-Gov API カタログ(示例URL)

resp = requests.get('https://api-catalog.e-gov.go.jp/info/ja/apicatalog/list')

items = resp.json()['items']

rows = []

for it in items:

url = it.get('downloadUrl') or it.get('homepage')

r = requests.head(url, allow_redirects=True)

rows.append({'title':it['title'],'content_type': r.headers.get('Content-Type')})

df = pd.DataFrame(rows)

print(df['content_type'].value_counts())

这个流程能快速给出机器可读 vs 非机器可读的比例。要注意:一些站点会把CSV放在HTML页面里,需要进一步抓取页面内资源链接。

4) PDF表的应对策略

  • 优先争取源端提供CSV/JSON;如果必须从PDF提取,使用 tabula-py / camelot 自动化提取,但需做后处理(类型转换、空值处理)。
  • 提供一套“PDF→结构化数据”的CI:每次数据更新触发提取,自动做schema校验、diff并上报异常。

示例命令:

# 使用 tabula 提取表格为CSV

tabula -p all -f CSV input.pdf -o output.csv

5) API质量改进清单(工程级)

  • 发布OpenAPI/JSON Schema与例子请求响应。
  • 为每个数据集提供DCAT或CSVW元数据(字段说明/单位/更新频度/ライセンス)。
  • 强制机器可读格式(CSV/JSON/Excel)为优先级,PDF作为补充且提供原始与结构化两份。
  • 建立数据质量仪表盘(KPI:可用性%、延迟、schema匹配率、完备率)。
  • 提供SDK或范例(Python、curl),降低使用门槛。

6) 指标化政策目标与评估

政策说“机器可读化”,那就直接设工程指标:

  • 目标1:X年内 ≥90% 数据集为CSV/JSON/Excel
  • 目标2:≥80% API拥有OpenAPI规格并通过schema校验
  • 目标3:为每个数据集提供可机器读取的许可证与更新时间戳

评估方式就是第3节的自动审计流程+质量仪表盘;这样政策就从模糊口号变成可验证的SLO/SLI。

7) 运用场景示例

東京都例子:公共施設的无障碍信息已通过Open Data API提供(GET /PublicFacility),如果字段标准化并保证CSV/JSON就能催生无障碍导航App、路线上无障碍优先级自动计算、以及自治体内部的运维自动化。

まとめ

  • 政府在开源与API化上已经有基础设施,但真正的价值在于“工程化落地”:格式、元数据、质量检测、开放规范缺一不可。
  • 技术上可行且成本可控:自动化抓取/校验/发布管线、OpenAPI + CSVW、数据质量CI、明确KPI都能在半年到一年内显著提升再利用率。
  • 从政策到代码的链路需要打通——既要有规则(デジタル庁的机可读规则),也要有工程实践与监控。

おかむーから一言

技术能把模糊的政策变成可验证的产品,我愿意把手头的全栈经验丢进去一起干!テクノロジーで社会をアップデートしよう!