brunch

공공데이터포털에서 API를 활용해 데이터 불러오기

For Python, 비개발자와 파이썬 초보를 위한 상세한 설명

by 낰타

해보고나면 별 거 아니지만 항상 처음은 어렵다.


공공데이터포털에서 API를 활용해 데이터를 불러오는 것도 마찬가지이다.

별 거 아니지만, 인터넷에는 내가 원하는 만큼 상세하게 설명해놓은 글이 없어 한참을 헤맸던 것 같다.


공공데이터포털을 처음 사용하고자하는 비개발자들(나 같은 사람)이 헤매지 않길 바라며 작성하였다.


이 글에서 사용할 데이터는 '기상청_단기예보' 데이터이다.

※ 공공데이터포털을 사용하기 위해서는 로그인이 필요하므로 회원가입을 해야한다.


(링크) : https://www.data.go.kr/iim/api/selectAPIAcountView.do


1단계. 활용신청하기

우선 데이터를 사용하기 위해서는 '활용신청'을 해야한다.

사유를 대충 적고 신청한다. 웬만한 데이터는 신청하자마자 자동승인되어 바로 사용 가능하다.

그림1.png


2단계. 데이터호출 코드 복사-붙여넣기 하기

'오픈API상세' 페이지 스크롤을 쭉 내리면 '샘플코드'가 있다.

여기서 Python을 클릭 후 코드를 복사해서 사용하는 IDE에 붙여넣는다.

그림2.png


https://gist.github.com/wildnakta/a031c4642e254717ad6392d74d26cb80



3단계. 데이터호출에 필요한 항목(파라미터) 입력하기

데이터를 호출하기 위해서는 반드시 입력해야 하는 파라미터들이 있다.

이 파라미터들을 입력하지 않을 경우, 데이터가 호출되지 않는다.

어떤 값들을 입력해야 하는지는 '요청변수(Request Parameter)'항목을 보면 자세하게 나와있다.

이 항목에서 입력해야 하는 값들의 종류와, 입력방식을 확인하고 위의 코드에 파라미터를 기입한다.

그림5.png



1. url : 호출할 API의 URL

- '상세기능'에 나와있는'요청주소'나 '서비스URL'을 복사해서 붙여 넣으면 된다.

그림3.png


2. 서비스키 ServiceKey

- 공공데이터포털에서는 한꺼번에 많은 데이터를 불러오거나 수없이 호출해서 부하를 주는 행위를 막기 위해 '개인 API 인증키'를 부여하고 있다. '마이페이지'로 들어가면 개인 API 인증키를 확인할 수 있다. 이 키를 복사하여 '개인 Service Key'에 입력하면 된다. 일반적으로 'Decoding'을 사용했을 때 동작하는 것 같다.

※ SerivceKey는 외부에 노출되지 않도록 주의해야 한다.

그림4.png


3. 페이지 번호 pageNo

- 일반적으로 1 입력


4. 한페이지 결과 수 numOfRows

- 몇 개의 행을 불러올건지 입력


5. 응답자료 형식 dataType

- XML 혹은 JSON 입력, 우리는 JSON을 사용할 것이므로 JSON 입력


6. 그 외

- 조회하고 싶은 데이터의 조건 및 범위 입력


※ 주의 : 이 글에서 사용한 '기상청_단기예보' 데이터의 경우 하루의 데이터만 제공하므로, 반드시 '발표일자(base_date)'에 오늘 날짜를 넣어야 한다. 그렇지 않으면 데이터가 호출되지 않는다.


Q. 예보지점 X좌표, 예보지점 Y좌표는 어떻게 아나요??
A. 데이터를 호출할 때, 고유코드(예. 지역코드, 좌표 등)가 필요한 경우가 있습니다. 이 경우 조회하고자 하는 데이터를 호출하기 위해 코드를 입력하는지 찾아야 합니다. 이 고유코드는 '참고문서'의 파일을 다운로드 받아서 확인하시면 찾을 수 있습니다.
그림6.png



4단계. JSON → 데이터프레임으로 변환

- JSON 형식의 데이터를 불러왔다면, 보기 좋고 분석이 용이한 데이터프레임으로 변환한다.

https://gist.github.com/wildnakta/68b4301ff9eaf3c4553874f8da4411b3




keyword
작가의 이전글공공데이터를 활용해 신혼집 찾기