on
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(4...
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(4...
반응형
Photo by Hitesh Choudhary on Unsplash
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기는 완성할 때까지 연재됩니다.
(지난 이야기)
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅)
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(2-샘플코드 파이썬3로 변환하기)
국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(3-API 호출 성공)
안녕하세요
국토교통부_전월세 자료 API를 활용해서 웹페이지를 만들어보는 개발을 하는 중인데요
지난 포스팅에 이어서 이번에는 지난 번에 test.py에서 자료를 호출하고 json으로 반환에 성공했던 코드를
함수로 만들고 app.py에서 그 함수를 불러와 보겠습니다
프로젝트 하위에 api 폴더를 만들고 rentprice.py 파일을 만들어
test.py에서 작성한 코드를 붙여넣어줍니다
그리고 이 코드를 함수로 바꿔줄 건데요
아래 처럼 코드를 입력해줍니다
from urllib.request import Request, urlopen from urllib.parse import urlencode, quote_plus import json import xmltodict def rentprice(LAWD_CD, DEAL_YMD) : url = 'http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptRent' serviceKey = '서비스키' queryParams = '?' + urlencode({ quote_plus('ServiceKey') : serviceKey, quote_plus('LAWD_CD') : LAWD_CD, quote_plus('DEAL_YMD') : DEAL_YMD }) request = Request(url + queryParams) request.get_method = lambda: 'GET' response_body = urlopen(request).read() # xml을 json으로 담기 jsonString = json.loads(json.dumps(xmltodict.parse(response_body), ensure_ascii=False)) # json에서 필요한 자료가 담긴 리스트를 results 변수에 담기 results = jsonString['response']['body']['items']['item'] return results # # 반복문으로 각각 데이터 표시해보기 # for i in range(len(results)) : # result = results[i] # print(result)
위 코드를 설명해보자면 아래 그림처럼
rentprice라는 함수를 선언하고 법정동코드와 거래연월을 함수에서 받을 변수로 지정합니다
그리고 함수안에 기본 예시로 입력되있던 법정동코드와 거래연월을 변수값으로 교체해주고
마지막에 리스트로 받아오는 results 를 반환하는 것으로 지정해줍니다
반복문의 경우 이 results 리스트를 프런트앤드로 보낸 뒤에 거기서 반복문을 실행시켜줄 거라
지금은 주석처리해줍니다
이제 이것을 app.py에서 불러와서 실행해보겠습니다
app.py에 아래 처럼 입력을 하고 실행을 해볼텐데요
잠깐 설명을 드리자면
import api.rentprice as rentprice
이 코드는 api 폴더 안에 rentprice.py라는 파일을 불러오겠다!
그런데 매번 api.rentprice 라고 쓰기는 번거로우니 as rentprice를 통해서
app.py안에서는 그냥 rentprice라고만 쓰겠다! 라고 선언한것이구요
results = rentprice.rentprice('11110','202106') print(results)
app.py 안에 results 라는 변수를 새로 생성하고
아까 선언한 rentprice안에 rentprice라는 함수를 불러오는데
입력해야하는 변수 2가지는 괄호 안에 값으로 하겠다
그런 뒤 results를 출력해다오~
라는 의미의 코드입니다
그러면 아래 보시는 것처럼 test.py에서 실행했던 것과 같은 결과를
app.py에서 얻으실 수 있습니다
다음 포스팅에서는 rentprice함수에 변수 2가지를 직접 입력했다면
이 법정동 코드와 거래연월을 프런트앤드에서 서버로 POST 요청을 통해 보내고
서버로 들어온 POST 요청에 따라 result값을 프런트앤드에 전달하는 것을 해보겠습니다
반응형
from http://goranisogul.tistory.com/80 by ccl(A) rewrite - 2021-06-17 01:26:45