0Pricing
Learn AI with Python · 강의

공공 데이터 API 활용

OpenWeatherMap, Wikipedia, 공공 정부 API를 활용한 실용적인 데이터 수집 사례를 살펴봅니다.

공공 데이터 API 활용은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

공개 API 연습하기

데이터 수집을 배우는 가장 좋은 방법은 실제 API를 호출해 보는 것입니다. 이 과정에서는 다음 세 가지 사용하기 쉬운 API를 활용합니다.

  • JSONPlaceholder — 연습용 가짜 REST API이며 키가 필요하지 않습니다
  • OpenWeatherMap — 실제 날씨 데이터를 제공하며 무료 API 키가 필요합니다
  • 위키백과 API — 문서 내용과 검색 기능을 제공합니다

JSONPlaceholder로 연습하기

JSONPlaceholder는 인증 없이 가짜 게시물, 사용자, 댓글을 제공합니다. 요청 및 파싱 코드를 테스트하기에 매우 적합합니다.

import requests

resp = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10)
resp.raise_for_status()
posts = resp.json()
print(len(posts), "posts")
print(posts[0]["title"])

응답에서 DataFrame으로 이어지는 작업 흐름

표준 작업 흐름은 JSON을 가져온 다음 곧바로 DataFrame으로 불러와 분석하는 것입니다.

import pandas as pd

posts = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10).json()
df = pd.DataFrame(posts)
print(df.head())
print(df["userId"].value_counts())

OpenWeatherMap — 키 가져오기

OpenWeatherMap은 appid 매개변수로 전달하는 무료 API 키가 필요합니다. 키를 코드에 직접 넣지 말고 환경 변수에서 읽으십시오.

import os

API_KEY = os.environ["OWM_API_KEY"]   # set OWM_API_KEY in your shell

OpenWeatherMap — 쿼리 매개변수

현재 날씨 엔드포인트는 q(도시), appid(키), units(미터법/야드파운드법)를 받습니다.

import requests, os

params = {
    "q": "Istanbul",
    "appid": os.environ["OWM_API_KEY"],
    "units": "metric",
}
resp = requests.get("https://api.openweathermap.org/data/2.5/weather", params=params, timeout=10)
resp.raise_for_status()
data = resp.json()

중첩된 JSON 필드 추출하기

실제 API 응답은 여러 단계로 깊게 중첩되어 있습니다. 키를 연이어 사용해 원하는 위치까지 들어가고, 없을 수 있는 필드에는 기본값과 함께 .get()을 사용하십시오.

temp = data["main"]["temp"]
humidity = data["main"]["humidity"]
desc = data["weather"][0]["description"]
print(f"{temp} C, {humidity}% humidity, {desc}")

여러 도시의 날씨 수집하기

도시를 순회하면서 필요한 필드를 딕셔너리 목록으로 평탄화한 다음 DataFrame을 만드십시오.

cities = ["Istanbul", "London", "Tokyo"]
rows = []
for c in cities:
    p = {"q": c, "appid": os.environ["OWM_API_KEY"], "units": "metric"}
    d = requests.get("https://api.openweathermap.org/data/2.5/weather", params=p, timeout=10).json()
    rows.append({"city": c, "temp": d["main"]["temp"], "desc": d["weather"][0]["description"]})
import pandas as pd
df = pd.DataFrame(rows)

위키백과 API

위키백과 API는 검색과 문서 내용을 제공합니다. action과 format=json을 전달해야 하며, 설명이 포함된 User-Agent 헤더도 필요합니다.

params = {
    "action": "query",
    "list": "search",
    "srsearch": "machine learning",
    "format": "json",
}
headers = {"User-Agent": "data-collector/1.0 (you@example.com)"}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, headers=headers, timeout=10)
results = resp.json()["query"]["search"]

문서 발췌문 가져오기

prop=extracts와 exintro=True를 사용하면 문서의 서론 단락을 가져올 수 있어 텍스트 데이터세트를 만들 때 유용합니다.

params = {
    "action": "query",
    "prop": "extracts",
    "exintro": True,
    "explaintext": True,
    "titles": "Artificial intelligence",
    "format": "json",
}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, timeout=10)
pages = resp.json()["query"]["pages"]
for pid, page in pages.items():
    print(page["extract"][:300])

API 문서 읽기

API마다 작동 방식이 다릅니다. 코딩하기 전에 기본 URL, 필수 매개변수, 인증 방식, 응답 구조, 요청 제한에 관한 문서를 읽으십시오.

요청 하나를 직접 실행해 보고 resp.json()을 확인한 다음, 실제 구조에 맞춰 반복문을 작성하십시오.

API 사용 예절 지키기

공개 API는 여러 사람이 함께 사용하는 자원입니다. 다음을 지키십시오.

  • 식별 정보를 담은 User-Agent를 보내기
  • 같은 데이터를 다시 가져오지 않도록 결과를 캐시하기
  • 요청 사이에 잠시 대기하고 요청 제한을 준수하기
  • 각 API의 이용 약관을 읽고 따르기

빠른 확인: 연습용 API

API 키를 신청하지 않고 요청 및 파싱 코드를 테스트하려고 합니다.

복습: 공개 데이터 API

이제 실제 API를 사용한 수집을 연습했습니다.

  • 인증 없이 연습할 수 있는 JSONPlaceholder
  • q, appid, units 매개변수와 환경 변수에서 가져온 키를 사용하는 OpenWeatherMap
  • 검색과 문서 발췌문에 사용하는 위키백과 API
  • 가져온 데이터를 DataFrame으로 옮기는 작업 흐름과 중첩된 JSON 안으로 들어가는 방법
  • 식별 헤더, 캐싱, 요청 제한, 이용 약관을 지키는 올바른 사용 습관

이것으로 데이터 수집을 마칩니다. 다음 주제: 텍스트 AI를 위한 정규 표현식

자주 묻는 질문

“공공 데이터 API 활용” 강의는 무료인가요?

네 — “공공 데이터 API 활용” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“공공 데이터 API 활용”에서 뭘 배우나요?

OpenWeatherMap, Wikipedia, 공공 정부 API를 활용한 실용적인 데이터 수집 사례를 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“공공 데이터 API 활용” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 데이터 수집을 위한 REST API 기초
  2. 대규모 데이터셋 페이지 처리 및 수집
  3. 수집 데이터의 효율적 저장
  4. 공공 데이터 API 활용
← Learn AI with Python(으)로 돌아가기