代码で語るマニフェスト:从CSV到API看日本行政数据的现状与改进

IT政策提案
代码で語るマニフェスト:从CSV到API看日本行政数据的现状与改进

どうも〜おかむーです!今天来聊点技术流的公共数据话题〜

  • 这篇文章用工程师视角检视日本政府/自治体公开数据的机读性与可用性
  • 我会以实际可下载的CSV与开放数据目录为例,指出问题并给出可执行的改善建议
  • 最后给出代码级的小片段,展示如何把现有CSV变成可用的API与GeoJSON

結論

总体来说,日本在推进“行政数据的机器可读性”上方向对,但执行上仍有明显断层:数据散落在各地、格式不统一、编码与元数据不足、缺少统一API与质量保障机制。要把政策从“纸上承诺”变成“代码级可验证”的结果,关键是标准化元数据、建立版本化数据管道、并把验证与发布自动化。

レポート本文

現状观测:哪些数据能直接拿来用

これ見てくださいよ:搜索结果里能直接拿到的CSV包括notice.go.jp的status_notice.csv、内閣府的经济统计CSV、Digital庁发布的医院名录CSV,还有各都道府県的オープンデータ目录。好消息是很多数据已经以CSV公开,这比嵌在PDF里强太多了!

不过问题也不少:

  • 编码与BOM问题:搜索片段里能看到像“都道府県コード又は市区町村コード...”前面有BOM,另一些文件出现mojibake(乱碼)。要用pandas读取,常常需要encoding='utf-8-sig'或手工清洗。要するに、編碼不統一,會增加使用门槛。
  • 元数据不够:很多数据在目录里只有文件名与一句说明,缺少字段说明、更新頻度、ライセンス、作成日時等结构化元数据(DCAT风格)。要するに,不知道字段什么意思也不能自动合并。
  • 格式不統一:同一主题(例:医療機関)不同自治体列名不一致(緯度/経度字段名不同、电话/法人番号位置不同),合并成本高。
  • API欠缺:大多数是一次性CSV下载,没有RESTful API、分页、过滤或差分更新接口。エンジニア的に言うと、這些是「データレイク」而不是「データサービス」。

技术检证:常见问题与快速修复方法

1) 读取与清洗示例(Python+pandas)

import pandas as pd

url = 'https://www.digital.go.jp/assets/.../xxxxxx_hospital.csv'

常见要点:utf-8-sig 去掉 BOM, low_memory=False 避免类型推断问题

df = pd.read_csv(url, encoding='utf-8-sig', low_memory=False)

基本清洗

df.columns = df.columns.str.strip()

df = df.dropna(subset=['緯度','経度'], how='any')

要するに、读取阶段就要处理编码、列名标准化、空值策略。

2) 从CSV到GeoJSON(GIS友好输出)

import geopandas as gpd

gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['経度'], df['緯度']), crs='EPSG:4326')

导出GeoJSON

gdf.to_file('hospitals.geojson', driver='GeoJSON')

3) 自动化验证(CI)

  • 建议把每个公开CSV纳入Git仓库(或对象存储并由CI监测),用简单的JSON Schema或Great Expectations断言字段存在、类型、范围。这样发布前就能catch错误。

政策目标 vs 現場実態

Digital庁の会議資料(2026/03/31)明确要整備「行政データの機械可読性ルール」,这是很好的政策方向。但现实是:规则还没转化成统一的技术栈、自治体执行能力参差不齐、没有强制的發布管线。结果就是中央有文件、地方有CSV,但要把它们组合成跨域分析仍需大量人工。

具体改善提案(可执行)

  • 标准化元数据:採用DCAT-AP-JP或类似模式,强制字段:title, description, license, updateFrequency, contact, schema(字段名、类型)、provenance。
  • 提供统一的API层:对每个高价值数据集(醫療機関、人口统计、案件通知)提供REST JSON API + OData或GraphQL,支持过滤、分页、增量同步(ETag/Last-Modified)。
  • 格式与编码规范:统一UTF-8无BOM或明确声明encoding,CSV必须使用RFC4180或提供CSVW metadata。
  • 自动化质量网关:在发布前通过CI进行schema校验、地理校验(緯度経度是否在該都道府県范围内)、许可证检查。失败则回退。
  • 打包与可重複取得:提供Dataset-level版本化(semantic versioning)并提供差分(delta)CSV或ストリーミング变更日志。
  • 开发者门户与样例代码:发布官方Python/JS SDK、Postman collection、以及Terraform/Helm示例,降低二次利用门槛。

小结的技术栈建议

  • 元数据:DCAT-AP-JP + JSON Schema
  • 数据存储/发布:CKAN/DKAN 或 S3 + CloudFront + API Gateway
  • 验证/CI:GitHub Actions + Great Expectations + pytest
  • 可视化与分析:GeoJSON、Parquet(列式)、Delta Lake(对大数据集)

まとめ

  • 日本在机器可读性政策上已经有路线图,但要变成开发者友好的数据生态,必须把规则编码化:字段规范、编码规范、版本化、API化、CI验证都要到位。
  • 现有CSV能用,但往往需要先手工清洗。通过标准化元数据和自动化验证,可以把「一次性下载」变成「持续可用的数据服务」。
  • 技术上不复杂,关键在于治理:谁负责schema、谁负责质量门槛、如何推动自治体采纳这些规范。

おかむーから一言

テクノロジーで社会をアップデートするって、口で言うのは簡単だけど、コードとパイプラインをちゃんと作ることが本丸なんです。やるなら今のうちに、ちゃんと作りましょうよ!