Airflow 실습 중에 API를 활용하여 공공 데이터 받아오는 Custom Operator 만드는 부분이 있다.
해당 실습을 이해하려면 API 호출하는 부분에 대해 공부해야 할 것 같아 정리하고자 한다. 🐼
서울시 열린 데이터 광장(https://data.seoul.go.kr/)에서는 많은 데이터들을 API 형태로 공유하고 있는데, 그 중 서울시 부동산 실거래가 데이터를 가져오고자 한다.
API 호출해서 가져올 수 있는 데이터들은 OpenAPI 태그가 붙어있다.
서울시 부동산 실거래가 데이터 페이지에 접속해보면 하단의 이미지처럼 샘플 URL에 대한 정보가 나와있다.

샘플 URL 구조를 살펴보면 아래와 같다.
http://openapi.seoul.go.kr:8088/(인증키)/xml/tbLnOpendataRtmsV/1/5/
http://openapi.seoul.go.kr:8088 : API 서버 주소 및 포트 번호(인증키) : 발급받은 인증키xml : 응답 데이터의 형식이며 json으로 변환 가능tbLnOpendataRtmsV : API 서비스 명이자 데이터셋 명1/5/ : 데이터 요청 범위이며 1행부터 5행까지 요청하겠다는 의미원하는 데이터 및 형식과 요청 범위 등이 담긴 URL을 통해 요청을 보내면 원하는 데이터를 반환받을 수 있다.
import requests
import json
from pprint import pprint
url = 'http://openapi.seoul.go.kr:8088/69657857647768643531636f766668/json/tbLnOpendataRtmsV/1/5/'
response = requests.get(url)
contents = json.loads(response.text)
pprint(contents)
해당 코드 실행 시 아래와 같이 데이터가 잘 받아와지는 것을 알 수 있다.

해당 데이터를 판다스 데이터프레임으로 변환해보자
key = list(contents.keys())[0]
data = contents.get(key).get('row')
df = pd.DataFrame(data)

파이썬 requests 라이브러리의 GET 메서드를 통해 데이터를 받아오는 과정을 정리해보았다.
requests 라이브러리에는 GET 뿐만 아니라 다양한 메서드를 지원하고 있으니 더욱 다양한 기능을 사용해볼 수 있겠다.