상세 컨텐츠

본문 제목

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(4-API호출을 함수로 선언하고 서버에서 실행해보기)

코딩공부/국토교통부 오픈 API 활용 개발

by 취미부자 직장인 고라니 2021. 6. 17. 00:31

본문

Photo by Hitesh Choudhary on Unsplash

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기는 완성할 때까지 연재됩니다.

 

(지난 이야기)

 

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅)

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅)

안녕하세요 오늘은 예전에 소개해드린 적이 있던 공공 API 중 하나를 호출해서 웹페이지에 정보를 띄워보려고 합니다~ 일단 파이썬과 플라스크를 이용할 건데요 제가 사용하는 플라스크 웹개발

goranisogul.tistory.com

 

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(2-샘플코드 파이썬3로 변환하기)

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(2-샘플코드 파이썬3로 변환

지난 포스팅에서 국토교통부 아파트 전월세 자료 API를 호출해보기 직전까지 작업을 진행했습니다 국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(1-기본세팅) 국토교통부

goranisogul.tistory.com

 

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(3-API 호출 성공)

 

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기(3-API 호출 성공)

국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기는 완성할 때까지 연재됩니다. (지난 이야기) 1편 국토교통부 전월세 실거래가 공공 API 호출해서 웹페이지에 띄워보기 [기본

goranisogul.tistory.com

 

 

안녕하세요

 

국토교통부_전월세 자료 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값을 프런트앤드에 전달하는 것을 해보겠습니다

관련글 더보기

댓글 영역