콘솔워크

python 코드로 pnu(필지고유번호) 번호 만드는 방법 본문

프로그래밍/python

python 코드로 pnu(필지고유번호) 번호 만드는 방법

콘솔워크 2024. 4. 9. 10:18
반응형
import re


def generate_fjgyno(address, admin_code, is_mountain=False):

    # 필지구분 (산인 경우 2, 일반인 경우 1)
    parcel_type = "2" if is_mountain else "1"

    # 정규식 패턴을 사용하여 본번과 부번 추출
    pattern = r"(\d+)(?:-(\d+))?"  # 숫자-숫자 패턴 (부번은 옵셔널)
    match = re.search(pattern, address)
    if match:
        bonbun = match.group(1).zfill(4)  # 본번 (4자리로 패딩)
        bunbun = match.group(2).zfill(4) if match.group(2) else "0000"  # 부번 (부번이 없는 경우 0000)
    else:
        print("주소 형식이 올바르지 않습니다.")
        return None

    # 필지고유번호 생성
    fjgyno = admin_code + parcel_type + bonbun + bunbun
    return fjgyno


if __name__ == "__main__":
    # 예시 주소
    # 행정구역코드
    admin_code = "4311425346"
    address1 = "서울특별시 강남구 논현동 2-12"
    address2 = "서울특별시 강남구 논현동 41-2"
    fjgyno1 = generate_fjgyno(address1, admin_code)
    fjgyno2 = generate_fjgyno(address2, admin_code)
    print("필지고유번호 (주소1):", fjgyno1)
    print("필지고유번호 (주소2):", fjgyno2)

 

 

먼저 행정구역코드를 알고 있어야함.

4311425346(행정구역코드) + 1(필지구분, 일반은 1 산은 2) + 0150(본번을 0000으로 패딩) + 0006(부번을 0000으로 패딩)

 

 

 

 

참조링크: https://sig03.medium.com/%EA%B5%AD%EA%B0%80%EA%B3%B5%EA%B0%84%EC%A0%95%EB%B3%B4%ED%8F%AC%ED%84%B8-api%EC%9D%98-pnu-%ED%95%84%EC%A7%80%EA%B3%A0%EC%9C%A0%EB%B2%88%ED%98%B8-%ED%9A%8D%EB%93%9D-%EB%B0%A9%EB%B2%95-33cedc97163

반응형