상세 컨텐츠

본문 제목

구글시트에서 ImportJSON을 이용하여 공시지가 가져오기

업자

by 木隱 2021. 3. 3. 09:25

본문

공공데이터포털에서 제공하는 공시지가 자료를 검색할 필요가 있을때 구글시트에서 importjson을 이용하여 공시지가를 가져오는 방법 입니다.

내장되어있는 importxml을 쓰면 좋지만, 아직 실력이 미천해서 우선 importjson을 사용해 봅니다.

 

importjson 스크립트 관련해서는 아래의 사이트를 참고했습니다.

 

inspirit941.tistory.com/30

 

구글 스프레드시트에서 웹 크롤링하기 - importjson 활용법.

웹 스크래핑과 크롤링으로 가장 많이 쓰이는 건 아무래도 Python일 겁니다. 라이브러리도 잘 되어 있고 빠르니까요. 하지만 코드를 한 번도 짜 본적 없는 사람이 웹 스크래핑과 크롤링을 하고 싶

inspirit941.tistory.com

 

전체 과정은 PNU값 만들기, URL 만들기, importjson으로 공시지가 검색하기, 3단계로 이루어 집니다.

 

PNU값 만들기

 

PNU값이란, PNU값은 모두 19자리로 구성되어 전국의 약4천만개에 달하는 지적을 유일하게 구분하는 값입니다.

구분 자리수
시도 2자리
시군구 3자리
읍면동 3자리
2자리
일반/산 번지 1자리 (일반=1, 산=2)
본번지 4자리
부번지 4자리

시도, 시군구, 읍면동, 리 까지의 10자리 코드는 행정표준코드관리시스템에서 검색하실수 있습니다.

https://www.code.go.kr/stdcode/regCodeL.do

 

법정동코드목록조회 - 행정표준코드관리시스템

 

www.code.go.kr

본번지와 부번지는 각각 4자리이며, 0을 포함시켜서 4자리를 맞춰야 합니다.

text 함수를 사용하여 이 부분을 해결합니다. 

=text(C5,"0000")

 

예를 들어 대전광역시 유성구 봉산동 549-1번지의 경우, 대전광역시 유성구 봉산동의 10자리 코드는 3020014500이고, 일반번지이므로 1, 본번지는 0549, 부번지는 0001 입니다. 따라서, 대전광역시 유성구 봉산동 549-1번지의 pnu는 3020014500105490001 입니다.

행정표준코드, 일반/산번지, 본번지, 부번지를 합치는 것은 concatenate함수를 이용합니다. 

=CONCATENATE(E5,F5,G5,H5)

 

URL값 만들기

공공데이터 포털에서 제공하는 서비스제공주소를 만들어야 합니다. 아래는 예시입니다. 

http://apis.data.go.kr/1611000/nsdi/IndvdLandPriceService/attr/getIndvdLandPriceAttr?ServiceKey="서비스키"&pnu=3020014500105490001&stdrYear=2020&format=json

URL은 주소와 서비스키, PNU값, 기준연도, 파일형식으로 이루어집니다.

이중에서 PNU값을 제외하고는 고정적인 값이므로 별도의 셀에 저장해서 사용했습니다.

URL값을 합치는 방법은 PNU값과 마찬가지로 concatenate함수를 이용합니다. 

 

공시지가 불러오기

공시지가는 importjson을 이용해 불러옵니다.

=ImportJSON(url 주소,원하는 항목, 기타옵션)

아래는 URL에서 제공하는 json파일 결과값입니다.

{"indvdLandPrices":{"field":[{"regstrSeCode":"1","pnu":"3011011800103310001","stdrYear":"2020","stdrMt":"01","pblntfPclnd":"779700","pblntfDe":"2020-05-29","stdLandAt":"N","lastUpdtDt":"2020-08-11","ldCode":"3011011800","ldCodeNm":"대전광역시 동구 삼성동","mnnmSlno":"331-1","regstrSeCodeNm":"일반"}],"totalCount":"1","numOfRows":"10","pageNo":"1","resultCode":null,"resultMsg":null}}

pblntfPclnd가 공시지가이므로, 원하는 항목 부분에는 "indvdLandPrices/field/pblntfPclnd"를 넣습니다.

기타 옵션은 importjson사이트를 참고하세요.

 

마지막으로 이렇게 불러온 값을 다른 파일에서 이용하고자 할때는 반드시 값복사를 이용하세요. 

관련글 더보기

댓글 영역