愛林

[Python] Python에서 Open API 불러오는 법 본문

Data Science/Python

[Python] Python에서 Open API 불러오는 법

愛林 2022. 9. 13. 14:47
반응형

드디어 프로젝트를 진행하게 되었으나,

난생 처음 공공데이터 포털에서 OpenAPI 를 받아와서 쓰게 되었다.

자주 받아올 것 같으니 쓰는 포스팅.

이렇게 적어두는 것은 나중에 나에게

큰 도움이 될 것이다 ...


 

먼저, 공공데이터 포털에 접속해서,

내가 원하는 OpenAPI 를 활용신청한다.

 

아마 자동승인 될 것이다.

 

이후 내가 원하는 활용신청 상세기능 정보에 들어가서

미리보기로 내가 확인할 데이터 한 번 미리봐준 후에 ,

 

API 상세 페이지로 가서

 

내가 원하는 상세 데이터 정보를 조회한다.

 

이후 아래의 샘플코드를 받아와서,

Python 에 입력한다.

나는 jupyter 노트북을 사용했다.

서비스키 안에는 

서비스 정보에 있는 일반 인증키 번호를 넣어주면 된다.

 

위의 내용을 붙여넣기 한 것이다.

데이터의 정보를 가리기 위해 반으로 갈랐다.

 

그럼 대충 이렇게 데이터의 결과가 뜨게 되는데,

예쁘게 정리해서 보기 위해서 pprint 를 사용해주었다.

 

from pprint import pprint
print(pprint(response.content))

사실 내 눈에는 똑같이 더럽다.

 

데이터프레임 가져와 ..

json 형태로 바꾸어주자.

 

import json

json_ob = json.loads(response.content)
print(json_ob)
print(type(json_ob)) #json타입 확인
# dict 타입

dict타입이라는 것을 확인했다.

 

데이터 내용을 확인했을 때, body 안에 내가 원하는 데이터 정보들이

담겨있었으므로, body만 빼내와준다.

 

# 필요한 내용만 꺼내기
body = json_ob['response']['body']['items']
print(body)

내가 원하는 내용만 남았다.

 

이제 데이터프레임으로 바꾸어주자.

 

from pandas.io.json import json_normalize
# Dataframe으로 만들기
dataframe = json_normalize(body)

print(dataframe)

그래 이런 걸 보고 예쁘게 정리됐다고 하는 것이다.

 

보기 편하다.

그치만 나는 더 보기 편하게 만들 것이다.

df 안에 데이터프레임 형태로 넣어주자.

 

df = pd.DataFrame(dataframe)
df.head()

너무 예쁘다.

 

이제 이걸 db형태와 csv형태 각각으로 저장해보자.

 

import sqlite3

con = sqlite3.connect("./gongsa.db")
df.to_sql('test', con, if_exists='append', index=False)
con.close()
990

990개의 데이터가 db파일로 저장되었다.

이제 이걸 DB에 옮겨서 확인하면 된다.

이건 따로 포스팅해야겠다.

 

df.to_csv(".csv", encoding = 'EUC-KR')

csv 파일로도 저장되었다.

Comments