Project/생활데이터 분석

공공데이터 openAPI 로 가져오기

하나719 2020. 10. 8. 15:50
반응형

데이터 프로젝트를 할 때, 공공데이터가 필요할 때가 있다.

이 때 csv로 제공하는 파일도 있지만, openAPI로 제공되는 데이터들도 많이 있다.

그리고 openAPI로 가져오면 csv로 데이터를 저장하지 않아도 돼서 대용량 파일의 경우 openAPI로 가져오는것이 좋다.

 

1. 공공데이터 사이트 접속 후 가입

data.seoul.go.kr/

 

서울 열린데이터광장

모든 서울시민을 위한 공공데이터 열린데이터광장에서 서울시와 연계 기관이 공개한 공공데이터를 확인하실 수 있습니다. 서울시와 관련된 다양한 공공데이터를 확인해 보세요.

data.seoul.go.kr

www.data.go.kr/index.do

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

 

2. 원하는 데이터 인증키 신청

인증키 신청할 때 어떤 목적으로 사용하는지 몇가지 물어보는데, 개인프로젝트에 이용한다고하고 개인 블로그 주소 넣어도 무관하다.

3. Jupyter notebook에서 데이터 불러오기

endpoint 작성 항목

  • 필수: my_key -> 위에서 발급받은 API KEY를 넣는다
  • 제공되는 API 마다 사용 방법이 다른데, 어떤 인자를 사용할수있는지 설명되어있다. 이걸 읽어보고 원하는 데이터를 가져올 수 있도록 넣어준다. 

예시에서 가져오려고 하는 지하철 데이터 정보는 이런 요청인자를 가지고 있다.

import requests
import json
import pandas as pd

#API KEY
my_key = '발급받은 APIKEY'

# 샘플 url 변형해서 사용
endpoint=f"http://openapi.seoul.go.kr:8088/{my_key}/json/CardSubwayTime/1/5/202001/"

#api 호출
resp=requests.get(endpoint)
print(resp.status_code)
print(resp.text)

#joson 파일로 가져왔기때문에, json() 함수로 data에 넣어주기
data=resp.json()

# json to dataframe
subway=pd.DataFrame(data['CardSubwayTime']['row'])
subway

 

반응형