代码で語るマニフェスト:从CSV到API,看政府数据能不能被工程化

IT政策提案
代码で語るマニフェスト:从CSV到API,看政府数据能不能被工程化

どうも〜おかむーです!大家好,我是おかむー!今天想做一篇偏技术的博客,用“代码で語るマニフェスト”这个概念,从数据和工程的角度去检验政府/自治体的数据与系统。エンジニア的に言うと、政策的好不好落地,很多时候取决于数据能不能被程序直接读写处理。~

  • 这篇报告检测了市县/都道府のオープンデータカタログ、CSV与PDF公开情况、API可用性与质量
  • 结论先行:许多数据“有发布”,但机器可用性、schema稳定性、更新频度等不足,影响政策量化与评估
  • 改进重点:统一schema、发布OpenAPI/JSON Schema、建立SLA与版本管理、增强可追溯性

結論

总体来说,自治体和中央机关已经开始把数据放出来(参考:東京都オープンデータカタログ、Niigata/埼玉/函館的CSV清单),でもエンジニア視点ではまだまだ「人間向け」公開が多いです。API一本で引ける・常時更新される・スキーマが安定しているという条件を満たすデータは少数。要するに、データ公開は始まっているけど“プロダクト品質”には届いていないということです。

レポート本文

1) 現状観察と問題点

これ見てくださいよ:東京都のデータカタログはCSVやXLSXで多く公開している(https://catalog.data.metro.tokyo.lg.jp/dataset)。一方で新潟市や埼玉県、函館市の例を見ると、CSVはあるけどマニュアルやスキーマがバラバラ(参照:新潟市CSVマニュアル、埼玉データカタログ、函館CSV一覧)。中国側だと企业信用信息や工信部备案サイト(gd.gsxt.gov.cn、beian.miit.gov.cn)がAPIでの安定提供に課題があるという指摘もあります。

主な技術的課題:

  • PDFに埋まった統計表がまだ多い→機械可読性ゼロ
  • CSVはあるがヘッダが不統一、欠損値ルール不在
  • 更新頻度・最終更新日時が明記されないデータが散見
  • APIが未整備か、あっても認証・レート制限・レスポンス仕様が非公開
  • ライセンス表記が曖昧で二次利用時に法的リスク

要するに、これらはデータプロダクトとしては品質不足なんです。

2) 技術検証(小さな実験例)

エンジニアなら分かると思うんですけど、チェックはこんな感じで自動化できます。例えば東京都カタログのCSVを素早く検査するPythonスニペット:

import requests

import pandas as pd

url = 'https://catalog.data.metro.tokyo.lg.jp/dataset/xxx/resource/yyy.csv'

r = requests.get(url, timeout=10)

if 'application/pdf' in r.headers.get('Content-Type',''):

print('PDF detected -> 要OCR或tabula')

else:

df = pd.read_csv(io.StringIO(r.text))

print(df.columns.tolist())

print('rows', len(df))

PDFが来たらtabula-pyやcamelotで抽出、だけどレイアウト依存で壊れやすい。CSVが来てもdtype推定、欠損パターンの検出、ユニット(円、件、人数)の正規化が必要です。

3) 政策の数値目標と実績ギャップの見方

GovTech東京の取り組み(ダッシュボード整備)を見ると、可視化は進むが元データの更新遅延や欠損でダッシュボードが古い値を表示するリスクがある。政策側は「X年までにY件を達成」と目標を立てても、その実績データがリアルタイムに計測・公開されなければ検証ができない。従って、政策評価のためのデータSLA(更新頻度・遅延許容・誤差限界)を設定すべきです。

4) 改善提案(技術的ロードマップ)

  • API化:まずはDatasetごとにOpenAPI仕様書を作る。レスポンスはJSON+JSON Schemaで型を保証する
  • Data Package(Frictionless Data)を導入し、schema.ymlでカラムの意味・単位・欠損ルールを明示
  • バージョン管理:データのバージョンを付与して後方互換性を維持
  • SLAとモニタリング:更新頻度と最終更新日時をメタデータで必須化。Prometheusで取得成功率を監視
  • 機械可読性強化:PDFは補助フォーマットに留め、一次公開は必ずCSV/JSON
  • サンプルコード公開:curl、Python、Rのサンプルをページ上に置く

運用上の注意:認証が必要なAPIではOAuth2+APIキーの発行、レート制限の明示、テスト用のステージングデータの提供を。

5) 活用シナリオ

  • ジャストインタイムな政策ダッシュボード(Python/NodeでETL→DB→Grafana)
  • 市民向けアプリが自治体API一本で住所データや施設データを参照
  • オープンデータを使ったコンペティションで新サービス創出(CSVの質が高ければ実装コストが激減)

まとめ

要点をまとめると:データ公開は進んでいるけど、機械可読性・API品質・スキーマ安定性がボトルネック。エンジニア的に言うと、ここは「仕様化→実装→運用」サイクルを回すだけの話です。具体的にはOpenAPI/JSON Schema、Data Package、SLA、そしてサンプルコードの提供を自治体の標準にすれば、政策の実効性評価と市民サービスの迅速な開発がぐっと楽になりますよね。

おかむーから一言

テクノロジーで社会をアップデートするのは夢物語じゃないです!データの“プロダクト品質”を自治体に組み込めば、政策はもっと検証可能で改善しやすくなります。僕も一緒にやりたい!