[Python] 都道府県データから郵便番号を取得

こんにちは。

以前は、郵便番号から都道府県名を表示しましたが、
今回はその逆で、都道府県名から郵便番号を調べていきます。

よろしくお願いいたします!

都道府県名から郵便番号を調べるプログラム

import mysql.connector

def search_zipcode_by_address():
    user_input = input("住所を入力してください(例:新宿区大京町): ")

    try:
        conn = mysql.connector.connect(
            host='***',
            user='***',
            password='***',
            database='post',
            connection_timeout=5
        )

        cursor = conn.cursor()

        query = """
            SELECT zip, pref, city, town
            FROM m_zip
            WHERE CONCAT(pref, city, town) LIKE %s
        """
        
        cursor.execute(query, ('%' + user_input + '%',))
        results = cursor.fetchall()

        if results:
            print("\n検索結果:")
            for zip_code, pref, city, town in results:
                print(f"{zip_code}: {pref}{city}{town}")
        else:
            print("該当する住所は見つかりませんでした。")

        cursor.close()
        conn.close()

    except mysql.connector.Error as err:
        print("MySQL接続エラー:", err)

# 実行
search_zipcode_by_address()

実行するとこんな感じになります↓

町名で検索することも可能です。

まとめ

今回は、都道府県名や町名を基に郵便番号を取得するプログラムを作成しました。

今後は、住所の町名や番地の有無、住所変更理由などの詳細な情報も表示したいと思いました。

ありがとうございました!

コメント

タイトルとURLをコピーしました