코드로 읽는 공공데이터 매니페스토 — CSV로 열린 정부, 하지만 진짜는 API다

안녕하세요, 오카무~입니다! 오늘은 정부·지자체가 공개한 CSV들을 코드 관점에서 뜯어보는 재밌는 시간이에요〜
- 이 글 3줄 요약
- 엔지니어 관점에서는 API·스키마·버전관리가 핵심! CSV만으로는 지속 가능한 플랫폼이 안 됩니다
- 제안: OpenAPI 기반 데이터 API, CSVW/JSON-LD 메타데이터, 자동화된 검증 파이프라인 도입하면 금방 개선 가능
結論
공공데이터가 CSV로 공개되어 있는 건 환영할 일입니다. 이거 보세요, CSV가 직접 링크로 뜨는 게 많아요(総務省、環境省、厚労省 別々) — 기계가 읽을 수 있다는 점에서 큰 진전이에요. 다만 엔지니어적으로 볼 때 CSV만으로 끝내면 확장성이 떨어지고 운영·책임의 문제가 남아요. 요약하면 "まずは良いけど、次はAPIとメタ데ータを整備しよう" 입니다!
レポート本文
何を見たか(データソース)
これ見てくださいよ、検索結果に挙がっている実際の公開データ:
- NOTICE注意喚起: https://notice.go.jp/docs/status_notice.csv
- 環境省(茨城県関連): https://www.env.go.jp/content/900398071.csv
- 住民移行等の一覧(2011): https://www.inpit.go.jp/content/100869372.csv
- 厚労省の救護施設: https://www.mhlw.go.jp/content/001682075.csv
- 総務省 全国データ: https://www.soumu.go.jp/main_content/000323625.csv
CSVで直リンクになっている点は嬉しい!エンジニア的に言うと、ファイル単位で公開されていると最初の取得は楽なんですよね。ただし次の課題が山積みです。
問題点を技術的に分解する
- スキーマ不統一
- 要するに、結合・横断分析に前処理コストがかかるということです。
- メタデータ欠如
- エンコーディング問題
- APIの不在
- バージョン管理と更新履歴の欠如
コードでできる簡単チェック(例)
エンジニアならわかると思うんですけど、こうやって最初に自動で検査するのが大事です。Python(pandas)で複数CSVを取得→エンコーディング自動判定→スキーマ検証の一例:
import requests, chardet, pandas as pd
from io import BytesIO
url = 'https://notice.go.jp/docs/status_notice.csv'
raw = requests.get(url).content
enc = chardet.detect(raw)['encoding']
df = pd.read_csv(BytesIO(raw), encoding=enc)
print(df.columns.tolist())
スキーマ例: 必須カラムが存在するか確認
required = ['id','date','title']
miss = [c for c in required if c not in df.columns]
print('missing', miss)
要するに、最初に自動で型と必須カラムチェックを入れておくと後がだいぶ楽になるんですよね。
政策目標と実績のギャップをどう見るか
政策が「オープンデータ化を推進」しているケースでも、形だけCSVを置くだけで実効性がないパターンがあります。例えば「全国データを公開して利活用促進」という目標なら、評価指標として
- API利用回数
- データ更新ラグ(公開から更新までの平均時間)
- メタデータ整備率
改善提案(具体的)
- DCAT-AP相当のカタログでメタデータを統一。各データセットにJSON-LD/CSVWのスキーマを添付する
- OpenAPIでGET/POST/フィルタ/ページングを提供。差分取得(endpoints like /datasets/{id}/changes)を用意
- CSVをコミットするたびに自動的にスキーマ検証・型チェック・サンプル数チェックを走らせる
- CSV→JSON APIを自動生成するミドルウェア(例: csv2apiや消費者向けGraphQLラッパー)
- UTF-8 + 明示的timezone/dateフォーマット(ISO8601)で統一
投資対効果の話
API化とメタデータ整備は初期コストがかかるけど、自治体間で共通のライブラリを作れば2回目以降は劇的に楽になります。データを使ったサービスが増えれば住民サービスの向上や民間活力の創出につながりますよね!
まとめ
- CSVでの公開は歓迎。ただしそれだけだと再利用性や運用性で限界がある
- エンジニア観点ではAPI+スキーマ+自動検証が勝負の分かれ目
- 具体策としてOpenAPI、CSVW/JSON-LD、CIパイプライン、差分APIを提案。要するに「データプラットフォーム化」するのが正攻法です
おかむーから一言
테크로 사회를 업그레이드하자! CSV는 시작일 뿐, API와 스키마로 시민에게 쓸모 있는 데이터 파이프라인을 함께 만들자구요〜
정보 출처
- https://notice.go.jp/docs/status_notice.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001682075.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- https://www.intec.co.jp/column/smartcity-08.html
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
- https://www.digital.go.jp/resources/data_case_study_private
- https://www.manawin.jp/languagegap/general/koukyou-kouteki/
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://ai-government-portal.com/%E5%85%AC%E5%8B%99%E5%93%A1%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E6%8C%91%E6%88%A6%E3%80%8C%E8%A1%8C%E6%94%BFux%E6%94%B9%E5%96%84%E6%A5%AD%E5%8B%99%E5%A7%94%E8%A8%97%E3%80%8D%E5%AE%8C%E5%85%A8%E3%82%AC/
- https://www.zhihu.com/question/38923279
공유하기
관련 리포트

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

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

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