代码で語るマニフェスト:从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、谁负责质量门槛、如何推动自治体采纳这些规范。
おかむーから一言
テクノロジーで社会をアップデートするって、口で言うのは簡単だけど、コードとパイプラインをちゃんと作ることが本丸なんです。やるなら今のうちに、ちゃんと作りましょうよ!
信息来源
- https://notice.go.jp/docs/status_notice.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/ea851c04-54d0-43ab-b352-4cb537ee5347/20210609_resources_survey_answers_04.csv
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/kakusyoDX4/kakusyoDX4.html
- https://www.zhihu.com/question/6430289390
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/256dcba6-b936-4031-b88d-3abb27e27f9b/7c809f2f/20260331_meeting_executive_outline_05.pdf
- https://www.zhihu.com/question/38923279
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.saitama.lg.jp/datasets
- https://opendata.pref.saitama.lg.jp/
- https://www.city.niigata.lg.jp/shisei/seisaku/it/open-data/
相关报告

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

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

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