はじめる
Japanese Address & Phone Normalizer|住所・電話番号の正規化

Japanese Address & Phone Normalizer|住所・電話番号の正規化

住所と電話番号の書き方をそろえる13のルールと、Python の見本コードです。 市外局番387種類を総務省の一覧と照らし、テスト13件で確かめました。
#エンジニアリング
評価
さらに評価が必要です
販売数
0
利用方法
ダウンロード

できること

  • 全角の数字や記号を半角にそろえます(住所・電話とも)
  • 数字のあとのハイフンや長音のゆれを「-」にそろえます
  • 「一丁目1番1号」を「1-1-1」の形にします
  • 漢数字は丁目の前だけ数字にします。四日市・八王子などの地名は変えません
  • 郵便番号から都道府県を補います。1つの県に決まるときだけです
  • 郵便番号を「〒1000001」→「100-0001」の形にそろえます
  • 「以下に掲載がない場合」などの説明文は住所に入れません
  • 電話の +81 を 0 に直します
  • 固定電話は、総務省の一覧の桁数で区切ります(例 03-0000-0000)
  • 決められないときは推測しません。そのまま返し、理由の印(flag)を付けます
  • ルールごとに、出典のファイルと行を書いています

できないこと

  • 住所や電話番号が実在するかは確かめません。書き方をそろえるだけです
  • 事業所の個別郵便番号は入っていません
  • 市外局番は令和8年3月1日現在の一覧です。そのあとの変更は入っていません
  • 携帯・IP電話・フリーダイヤル(090・080・070・050・0120・0800・0570)は区切りません。総務省のページに桁数の記載がないためです。印を付け、半角とハイフンだけそろえて返します。区切りは入力のままです
  • 04 と 042 のように頭がかぶる市外局番は、数字だけでは決められません。印を付け、半角とハイフンだけそろえて返します。区切りは入力のままです
  • 郵便番号が2つの県にまたがる3件(498-0000 など)は、県を補いません
  • 郵便番号データは2026-10-27 に取得した版です(サーバーの更新日 2026-09-30)。そのあとの変更は入っていません

サンプル

サンプル(同梱の normalize.py の実際の出力。電話番号は 0 で埋めた例です)

normalize_phone('03-0000-0000')
→ 03-0000-0000

normalize_phone('+81 3 0000 0000')
→ 03-0000-0000

normalize_phone('04-2900-0000')
→ 04-2900-0000(flag: ambiguous_area_code)

normalize_address('千代田区千代田一丁目1番1号', postcode='100-0001')
→ 東京都千代田区千代田1-1-1

normalize_address('三重県四日市市三丁目')
→ 三重県四日市市3丁目

出どころ

確認済み

01.webp 02.webp