こんにちは。Yuinaです🍓
以前の記事では、郵便番号から都道府県名を表示する仕組みをご紹介しましたが、
今回はその逆、都道府県名から郵便番号を調べる方法を試してみます!
使用するデータベースについては、こちらの記事でご確認いただけます。
よろしくお願いいたします!
都道府県名から郵便番号を調べるプログラム
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()
実行するとこんな感じになります↓

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

まとめ
今回は、都道府県名や町名を基に郵便番号を取得するプログラムを作成しました。
今後は、より使いやすいインターフェースを追加し、
住所の町名や番地の有無、住所変更理由なども表示できるようにしたいなと思います🤩
ありがとうございました!
コメント