본문 바로가기
파이썬(Python)

파이썬-우편번호API 이용 우편번호 찾기(1)

by 즐거운코딩 2024. 12. 19.
반응형

서비스 기능을 개발하거나 데이터 정제작업을 하는 과정에서 주소정보 기반으로 우편번호가 필요한 경우가 있습니다.

어디서나 쉽게 보는 주소 검색으로 우편번호 찾기 기능을 파이썬으로 간단하게 만들어 보고자 합니다.

 

1.  우편번호 조회 방법

여러 방법이 있겠지만 무료로 사용할 수 있는 공공데이터 포탈의 정보를 활용하는 방법에 대해 설명하겠습니다.

다양한 서비스 개발에 있어서 원천 데이터 확보를 위해 공공데이터 포탈의 활용은 도움이 많이 됩니다.

 

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

 

혹시 가입이 안되신 분은 화원 가입부터 진행해주세요

이용방법은 별도의 포스트로 안내드리겠습니다.

 

일단 회원가입 하셨다고 보고 그 다음 과정부터 진행하겠습니다.

검색창에서 우편번호 관련 검색을 합니다.

공공데이터 포탈

 

조회된 결과중에서 우편번호 전체를 받을 수도 있지만 개발에 적용하는 것은 API 를 사용하도록 하겠습니다.

공공데이터 포탈 우편번호 검색 결과

 

검색결과중 오픈API 항목에서 '과학기술정보통신부 우정사업본부, 우편번호 정보조회' 를 사용합니다.

 

반응형

2.  우편번호 정보조회 API 내용

  • 사전에 "활용신청"  필요
  • 자동승인으로 바로 활용 가능하며 API 조회를 위한 Key 값은 "마이페이지" 에서 확인 가능
  • API 요청변수
    • 검색어 : 주소지 정보로 지번주소, 도로명주소 모두 조회 가능
    • 페이지당 출력 개수 : 최대 50개
    • 출력될 페이지 번호
  • API 출력결과 (XML 포맷)
    • 우편번호 : 5자리
    • 도로명주소
    • 지번주소
  • 일사용 건수 제한 : 1만건
    • 서비스 이용시 일반적으로 일 1만건 이상 조회할 일이 거의 없지만
    • 대량의 주소정보를 일괄로 조회하여 우편번호를 추출하는 작업에 있다면 제한이 있으니 참고

 

  • 파이썬 이용시 샘플 코드
    • 서비스키 필드에 발급받은 키를 대체하여 조회
    • 기타 샘플코드로 Java, Javascript, PHP, Nodejs, R 도 제공하고 있으니 참고
# Python3 샘플 코드 #

import requests

url = 'http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdSearchAllService/retrieveNewAdressAreaCdSearchAllService/getNewAddressListAreaCdSearchAll'
params ={'serviceKey' : '서비스키', 'srchwrd' : '공평동', 'countPerPage' : '10', 'currentPage' : '1' }

response = requests.get(url, params=params)
print(response.content)
  • Postman 으로 실제 조회되는지 검증
    • 조회 URL 입력 
    • serviceKey 는 마이페이지에서 확인 가능 - Encoding, Decoding 인증키중 정상조회 되는 키 사용

postman API 요청화면

  • Postman 검색결과 xml 포맷 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NewAddressListResponse>
    <cmmMsgHeader>
        <requestMsgId></requestMsgId>
        <responseMsgId></responseMsgId>
        <responseTime>20241219:135046376</responseTime>
        <successYN>Y</successYN>
        <returnCode>00</returnCode>
        <errMsg></errMsg>
        <totalCount>889</totalCount>
        <countPerPage>10</countPerPage>
        <totalPage>89</totalPage>
        <currentPage>1</currentPage>
    </cmmMsgHeader>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 15 (공평동, 시민고속관광)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 676-7 (시민고속관광)</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 15 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 676-7</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 22-78 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 771</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 22-172 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 1030</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 56 (공평동, 캐프)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 산160-1 (캐프)</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 60-13 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 781-6</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 60-15 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 산160-1</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 60-17 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 산160-1</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 60-19 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 산160-1</rnAdres>
    </newAddressListAreaCdSearchAll>
    <newAddressListAreaCdSearchAll>
        <zipNo>36991</zipNo>
        <lnmAdres>경상북도 문경시 골안길 60-21 (공평동)</lnmAdres>
        <rnAdres>경상북도 문경시 공평동 산160-1</rnAdres>
    </newAddressListAreaCdSearchAll>
</NewAddressListResponse>

 

출력결과가 XML 포맷이므로 이 결과에서 필요한 정보를 추출하여 사용하는 방법에 대해서는

다음 포스트에서 실제 서비스에 적용하는 예시로 보여드리겠습니다.

 

2024.12.20 - [리액트(React)] - 파이썬-우편번호API 이용 우편번호 찾기(2)

반응형