コードで語るマニフェスト:政府データとAPIをエンジニア視点でレビュー

안녕하세요~ 오카무입니다! 오늘은 정부·지자체 데이터와 시스템을 코드 관점에서 뜯어보는 레포트입니다. 엔지니어답게 실용성과 재현성을 중심으로 평가하고, 개선 플랜까지 던져볼게요~
- 이 글의 핵심: 공공데이터는 이미 CSV·API 형태로 공개되어 있지만 일관성·機械可読性에서 한계가 많다
- 기술적 문제: 인코딩·スキーマ不統一、API仕様の欠如、メタデータ不足が足を引っ張ってる
- 제안: OpenAPI·JSON Schema·CI 기반 데이터品質パイプラインで現場をアップデート!
結論
정부·지자체는 데이터 공개의 ‘量’は増えているけど、エンジニア的には『使えるデータ』になっていないことが多いです。要するに、API一本化・標準スキーマ・自動テストを入れれば活用が劇的に増えるということです!
レポート本文
現状把握 — 何が公開されているか
これ見てくださいよ:政府のAPIカタログ(https://www.e-gov.go.jp/digital-government/api)や東京都のオープンデータAPI(https://portal.data.metro.tokyo.lg.jp/opendata-api/)は既に存在します。CSVで落とせるファイル(例: 総務省のCSVリスト https://www.soumu.go.jp/main_content/000323625.csv など)も多数。
エンジニア的に言うと、公開の“足がかり”はあるんですけど、実運用でハマるポイントが山ほどあります!
よくある技術的課題
- フォーマット不統一:CSV、Excel、PDF混在。PDFは機械判読不能!要するにデータが“埋もれてる”ということです。
- 文字エンコーディング問題:shift_jis vs utf-8、BOMあり無しでパースが壊れる
- スキーマ不足:カラム名が自治体ごとにバラバラで結合が辛い
- メタデータ不足:更新時刻・ライセンス・ID・説明が欠落していることが多い
- API仕様の欠如:OpenAPI等の仕様書がなく、認証・ページング・レート制御が不明
実践的な技術検証例(コード)
次のPython例、CSVを取ってきて正規化する基本ワークフローです。
import requests
import io
import pandas as pd
url = 'https://www.soumu.go.jp/main_content/000323625.csv'
res = requests.get(url)
res.encoding = 'utf-8' # まずutf-8で試す。ダメなら'cp932'を試す
df = pd.read_csv(io.StringIO(res.text))
カラム名正規化
df.columns = [c.strip().lower().replace(' ',' ').replace(' ','_') for c in df.columns]
print(df.head())
要するに、エンコーダ検出やカラム正規化はテンプレ化できるんです。これをCIに組み込めば初期コストで将来の手間を減らせますよね。
APIの設計観点 — ここは直したい
- OpenAPIでエンドポイントを仕様化する(型や必須フィールド、HTTPステータスを明示)
- JSONレスポンスを標準にして、CSVはエクスポートオプションにする
- ページング・フィルター・ソートを統一(例: cursor-based paging)
- メタデータ(version, updated_at, license, source_id)を必須にする
データ品質パイプライン案
- CIでのバリデーション: JSON Schema / Great Expectationsで自動チェック
- デプロイ前にスモークテスト: サンプルクエリでレスポンス確認
- バージョン管理: データセット単位でスキーマとスナップショットをGitで管理
- モニタリング: ETag/Last-ModifiedとSLA(更新頻度の期待値)を公開
政策の数値目標と実績のギャップ(一般論ベースでの指摘)
デジタル行政の目標として「オープンデータの活用促進」が掲げられることが多いです。ただ、公開件数と“実利用”は別問題。エンジニアが使いやすいAPI・ドキュメント・サンプルを用意しないと、公開データは単なるアーカイブのままです。
要するに、数値(公開件数)ではなく“使われる指標”(APIコール数、ダウンロード数、二次利用事例)をKPIにすべきです。
活用提案(すぐできること)
- まずはAPIカタログにOpenAPI定義を追加してもらう
- CSVを配布する場合は必ずUTF-8 + BOMなしで公開、READMEで説明
- 各自治体で共通スキーマの作成(最低限の必須カラムを規定)
- サンプルクエリとデータサニティチェックのコードを公開リポジトリに置く
- 民間との協業を促すために、ライセンスを明確に(CC-BYなど)
まとめ
- 公共データ基盤はある程度整ってきているが、機械可読性・標準化が課題
- エンジニア的にはOpenAPI・JSON Schema・CIで一気に改善できる!
- KPIを「公開件数」から「実利用」に変えると政策効果が見えやすくなる
おかむーから一言
테크로 사회를 바꾸는 게 가능하다고 믿습니다! 코드와 작은 자동화로 공공データ는 더 많은 가치를 낼 수 있어요. 같이 해봅시다!
정보 출처
- https://www.jichi.ac.jp/
- https://www.e-gov.go.jp/digital-government/api
- https://www.jichi.ac.jp/web_text/
- https://portal.data.metro.tokyo.lg.jp/opendata-api/
- https://wma1.jichi.ac.jp/moodle/
- https://www.jinji.go.jp/content/900024615.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001429362.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://www.city.fukuoka.lg.jp/soki/system/shisei/koukyousisetsu-yoyaku_12_2_2.html
- https://www.intec.co.jp/column/smartcity-08.html
- https://www3.11489.jp/fukuoka/user/Home
- https://www.digital.go.jp/resources/data_case_study_private
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
공유하기
관련 리포트

コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する
自治体データはPDFやUIに閉じがち。API-firstとJSON Schemaで再利用性を高め、ガバメントクラウドへ移行する実務ロードマップを提示します。

コードで語るマニフェスト:日本政府データの現場から見る技術検証
政府データは可視化が進むも機械可読性不足が課題。CSV/JSON/API、スキーマ、ID統一で政策検証を自動化しよう。

코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기
일본 정부 데이터의 PDF·API·메타데이터 문제를 엔지니어 관점에서 분석하고, 실무 가능한 개선안을 코드 예시와 함께 제시합니다。