[TIL] 9월 24일: open API

Jung·2021년 9월 24일
0

TIL

목록 보기
11/77
post-thumbnail

팀 프로젝트 해야지.. TIL 써야지.. 몸이 하나라 바쁜가... 조금만 더 힘을 내보자 🔥🔥

오늘은 공공데이터포털에서 한국관광공사 국문 관광정보 서비스에 대한 open API를 사용하기 위해 활용신청을 했다. 이 open API에는 다양한 정보가 포함되어 있는데 우리는 그 중 위치 기반 관광 정보 조회를 사용할 것이다.

하지만 시작부터 쉽지 않았다.

공공데이터 포털 홈페이지에서 미리 테스트 해볼 수 있는데 내가 발급받은 인증키를 넣고 미리보기 버튼을 눌렀다. 하지만! 등록되지 않은 키라면서 에러가 발생했다. 인터넷에 검색해본 결과 1시간에서 2시간 후에 정상적으로 될 수도 있다고 나왔다. 그런데 3시간이 지나도 진전이 없어서 결국 한국관광공사에 전화해서 문의했다. 궁금한 건 못 참지... 한국관광공사 api 담당자 분이 말씀하시길, 아직 한국관광공사 테이블에 내가 신청을 했다는 데이터가 넘어오지 않았다고 하셨다. 그래서 담당자 분이 계속 모니터링 해주신다고 했고 도저히 내 신청 정보가 넘어갈 기미가 보이지 않으면 다시 전화 주신다고 하셨다.
전화를 끊고 1시간에서 2시간 뒤에 다시 해봤는데 정상적으로 실행이 되었다.

이 api는 응답으로 오는 데이터가 xml 포맷이다. 내가 원하는 건 json 포맷이었는데 여기서는 xml로 제공하니까 내가 json으로 변환해야 했다.

구글링을 통해 파이썬의 xmltodict 라이브러리를 알게 되었고 이 라이브러리와 json 라이브러리로 xml 포맷을 json 포맷으로 변환했다.

import requests
import xmltodict
import json

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }

key = '인증 키'

url = '요청 url'

r = requests.get(url, headers=headers)

dictionary = xmltodict.parse(r.text)  # xml을 파이썬 객체(딕셔너리)로 변환
jsonDump = json.dumps(dictionary)  # 파이썬 객체(딕셔너리)를 json 문자열로 변환
jsonBody = json.loads(jsonDump)  # json 문자열을 파이썬 객체(딕셔너리)로 변환

print(jsonBody)

구글링을 참고해 위 코드를 완성했다. 실행하면 json 포맷으로 변환된 것을 확인할 수 있다!!

profile
97kim.github.io

0개의 댓글