통계청 오픈 API로 데이터 크롤링 & 엑셀 자동화하기
1. 통계청 오픈 API란?
통계청에서는 다양한 통계 데이터를 API로 제공하고 있습니다.
이를 활용하면 인구, 가구, 산업, 지역별 통계를 쉽게 가져올 수 있습니다.
✅ 왜 통계청 API를 사용할까요?
✔ 크롤링보다 API를 사용하면 더 빠르고 정확한 데이터 수집 가능
✔ 엑셀, Python 등 다양한 환경에서 활용 가능
✔ 자동화된 데이터 분석, 보고서 생성에 활용 가능
이번 글에서는 통계청 오픈 API를 활용하여 데이터 요청 & 엑셀에 자동화하는 방법을 단계별로 설명해 드리겠습니다.
2. 통계청 API 사용을 위한 사전 준비
🔹 1. 통계청 API 회원가입 & 인증키 발급
API를 사용하려면 회원가입 후 API 인증키를 발급받아야 합니다.
1️⃣ 통계청 오픈 API 사이트로 이동
2️⃣ 회원가입 후 "개발지원센터"로 들어가기
3️⃣ "인증키 발급 신청" 클릭
4️⃣ 신청 완료 후 발급된 "서비스 ID"와 "보안 키" 확인
💡 인증키 예시
- 서비스 ID:
abcd1234xyz
- 보안 키:
wxyz5678abcd
🔹 2. API 인증 과정: 액세스 토큰 발급
API를 사용하려면 발급받은 인증키로 액세스 토큰을 받아야 합니다.
✅ 액세스 토큰 요청 URL (예제)
https://sgisapi.kostat.go.kr/OpenAPI3/auth/authentication.json?consumer_key=abcd1234xyz&consumer_secret=wxyz5678abcd
🔹 위 URL을 브라우저에서 실행하면 **액세스 토큰(Access Token)**이 반환됩니다.
🔹 토큰은 일정 시간이 지나면 만료되므로 갱신이 필요합니다.
💡 액세스 토큰 예시:
{"result":{"accessToken":"eyJhbGciOiJIUzI1...","accessTimeout":"2025-03-07 23:59:59","errCd":"0","errMsg":"Success"}}
👉 "accessToken"
값을 추출하여 API 요청 시 사용하면 됩니다!
3. 통계청 API를 활용한 데이터 요청 (Python 코드)
이제 Python을 활용하여 API를 요청하고 데이터를 가져오는 방법을 배워보겠습니다.
📌 예제 1: 액세스 토큰 발급 요청 (Python 코드)
import requests # 1️⃣ API 요청 URL 설정 url = "https://sgisapi.kostat.go.kr/OpenAPI3/auth/authentication.json" params = { "consumer_key": "abcd1234xyz", "consumer_secret": "wxyz5678abcd" } # 2️⃣ GET 요청 보내기 response = requests.get(url, params=params) # 3️⃣ 응답 데이터 확인if response.status_code == 200: data = response.json() access_token = data["result"]["accessToken"] print("✔ 액세스 토큰:", access_token) else: print("❌ API 요청 실패:", response.status_code)
💡 코드 설명
✔ requests.get(url, params=params)
→ GET 요청을 보내 API 데이터를 가져옴
✔ data["result"]["accessToken"]
→ 반환된 JSON 데이터에서 액세스 토큰 추출
4. 통계청 API로 인구 통계 데이터 가져오기
액세스 토큰을 발급받았으니, 이제 실제 데이터를 요청해 보겠습니다!
✅ API 요청 URL 예제
https://sgisapi.kostat.go.kr/OpenAPI3/stats/population.json?accessToken=발급된_토큰&year=2020&adm_cd=11
👉 이 요청을 실행하면 서울특별시(코드: 11)의 2020년 인구 통계를 가져옵니다.
📌 예제 2: 인구 통계 데이터 요청 (Python 코드)
# 1️⃣ 액세스 토큰 (위에서 발급받은 값) access_token = "발급된_토큰"# 2️⃣ API 요청 URL 설정 url = "https://sgisapi.kostat.go.kr/OpenAPI3/stats/population.json" params = { "accessToken": access_token, "year": "2020", # 조회할 연도"adm_cd": "11"# 서울특별시 (행정구역 코드) } # 3️⃣ GET 요청 보내기 response = requests.get(url, params=params) # 4️⃣ 응답 데이터 확인if response.status_code == 200: data = response.json() print("✔ 서울특별시 인구수:", data["result"][0]["population"]) else: print("❌ API 요청 실패:", response.status_code)
💡 코드 설명
✔ params["year"] = "2020"
→ 조회할 연도를 입력
✔ params["adm_cd"] = "11"
→ 행정구역 코드 입력 (예: 서울특별시 11
)
✔ data["result"][0]["population"]
→ 인구수 데이터 추출
5. API 데이터를 엑셀에 자동 입력하기 (Python + openpyxl)
API로 가져온 데이터를 엑셀에 저장하면 데이터 분석, 보고서 작성이 쉬워집니다!
📌 예제 3: API 데이터를 엑셀에 저장하는 코드
import openpyxl # 1️⃣ 엑셀 파일 생성 wb = openpyxl.Workbook() ws = wb.active ws.title = "인구 통계"# 2️⃣ 헤더 추가 ws.append(["연도", "지역 코드", "지역명", "인구수"]) # 3️⃣ API 데이터 가져오기 data_list = [ {"year": 2020, "adm_cd": "11", "region": "서울특별시", "population": 9500000}, {"year": 2020, "adm_cd": "26", "region": "부산광역시", "population": 3400000}, ] # 4️⃣ 데이터를 엑셀에 입력for item in data_list: ws.append([item["year"], item["adm_cd"], item["region"], item["population"]]) # 5️⃣ 엑셀 저장 wb.save("population_data.xlsx") print("✔ 엑셀 파일 저장 완료!")
📌 이제 데이터를 자동으로 엑셀에 저장할 수 있습니다!
결론: 통계청 API를 활용한 자동화의 가능성
✅ 통계청 API를 활용하면 데이터 수집 & 자동화가 쉬워집니다.
✅ Python을 사용하면 API 요청 → 데이터 저장 → 엑셀 자동화까지 가능!
✅ 공공 데이터 API 활용을 배우면 다양한 자동화 프로젝트에 활용할 수 있음
🚀 이제 API를 활용하여 나만의 데이터 분석 시스템을 만들어 보세요!
💬 여러분은 어떤 데이터를 분석하고 싶나요? 댓글로 공유해 주세요! 😊
🚀 이제 블로그에 바로 적용하면 됩니다!
추가 수정이 필요하시면 언제든 말씀해 주세요. 😊처음으로
댓글 쓰기