지난 포스팅에서 국토교통부 아파트 전월세 자료 API를 호출해보기 직전까지 작업을 진행했습니다
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅)
이번에는 실제로 호출을 해볼텐데요
test.py에 공공데이터포털의 샘플코드를 입력합니다
# Python 샘플 코드 #
from urllib2 import Request, urlopen
from urllib import urlencode, quote_plus
url = 'http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptRent'
queryParams = '?' + urlencode({ quote_plus('ServiceKey') : '서비스키', quote_plus('LAWD_CD') : '11110', quote_plus('DEAL_YMD') : '201512' })
request = Request(url + queryParams)
request.get_method = lambda: 'GET'
response_body = urlopen(request).read()
print response_body
하지만 문제가 생겼습니다
국토교통부에서 제공하는 아파트 전월세 자료 API의 샘플 코드가 파이썬3에서는 작동하지 않는 점인데요
위 에러는 print문은 아래처럼 입력이 되어야하는데 잘못작성이 되어 있네요
print(response_body)
하지만 이렇게 고쳐도 아래와 같은 에러가 발생합니다
위 그림처럼 urllib2를 찾을 수 없다고하는데요
환경설정에 가서 모듈을 설치해보겠습니다
하지만 라이브러리 설치화면에서 조회해봐도 urllib2는 보이지 않네요
이처럼 기본 제공하는 샘플코드는 파이썬3의 문법과 맞지 않는 부분이 있고
검색해보니 라이브러리도 urllib2는 파이썬3를 지원하지 않는다고 합니다
파이참의 에디터에서 보면 아래 그림처럼 urllib에서도 urlencode, quote_plus가 동작하지 않는 것을 파이참에서 확인할 수 있습니다
위 그림을 보면 urllib2와 urllib의 import 하단에 있는 라이브러리들의 하단에 빨간 줄로
오류를 표시해주고 있습니다
이것을 해결하기 위해 urllib의 문서를 확인해보려고 합니다
구글에서 urllib을 검색하면 두번째로 표시되는 웹페이지가 urllib2의 문서인데요
여기서 해결책을 찾을 수 있을 것 같아서 들어가 찾아봤습니다
아래는 문서 내에서 urllib으로 검색한 결과인데
파이썬2에서 파이썬3로 자동 코드 변환하는 것이 최상위에 나와있네요
자동코드 변환으로 들어가보겠습니다
아래는 2to3라는 파이썬2에서 파이썬3로 자동으로 코드를 변환해주는 명령어에 대한 문서입니다
원본 코드가 있으면 Terminal에서 아래 명령어를 실행하면 되는 것 같은데요
2to3 test.py // 변환해야하는 코드 미리보여주기
2to3 -w test.py // 원본 코드 바로 변환하기
우선은 어떻게 바꿔야하는 지를 보고 두번째 명령어를 통해 수정을 해보겠습니다
보시면
//원래 코드
from urllib2 import Request, urlopen
from urllib import urlencode, quote_plus
//변환 코드
from urllib.request import Request, urlopen
from urllib.parse import urlencode, quote_plus
이렇게 urllib의 모듈들의 위치가 변화된 것을 볼 수 있네요
이제는 실제로 변환해서 호출이 잘 되는 지 보겠습니다
아래는 2to3 명령어로 변환된 코드입니다
아래는 실행된 화면인데요
이번에는 또 다른 에러가 발생했네요
resultCode는 99
resultMsg는 SERVICE KEY IS NOT REGISTERED ERROR.
라고 표시되네요
등록되지 않았다니...
공식문서를 보면 두 가지를 점검하라는데요
1. OpenAPI 활용신청정보의 발급받은 서비스키를 다시 확인하시기 바랍니다.
2. 서비스키 값이 같다면 서비스키가 URL 인코딩 되었는지 다시 확인하시기 바랍니다.
1. 서비스키는 공공데이터포털에 있는 것을 그대로 복사해서 넣었으니 잘못입력되었을리는 없고
2. URL 인코딩이라는 것이 문제인 듯한데요...
얼른 개발을 해야하는데 아직 호출도 못하고 있다니...
공공 API가 사용하기가 참 어렵다는 생각이 듭니다
하지만 이런 문제들을 해결하다보면 실력이 늘어있겠죠??ㅋㅋㅋㅋ
다음 포스팅에서는 이 에러를 해결해보겠습니다
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(6-프런트앤드 화면 만들고 콘솔에 결과 띄우기 시도) (0) | 2021.06.17 |
---|---|
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(5-프런트앤드와 백앤드 통신 시도 준비) (1) | 2021.06.17 |
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(4-API호출을 함수로 선언하고 서버에서 실행해보기) (0) | 2021.06.17 |
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(3-API 호출 성공) (0) | 2021.06.16 |
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅) (2) | 2021.06.10 |
댓글 영역