https://blog1.mammb.com/entry/2020/02/11/015807#JPostal

はじめに

郵便番号の入力に応じて、都道府県や市区町村を入力補完したいといったよくあるユースケースがあります。 このときに辞書データの候補となるのが、日本郵便の公開する郵便番号データ ken_all.csv です。

しかしこのデータは悪評高きことで有名で、システムで使うには泥臭い整形が多数必要になります。

ここでは、この郵便番号データをどうにかする方法について見ていきます。

郵便番号と住所の割当についての注意点

郵便番号データ自体とは関係ないのですが、郵便番号を扱う際にの注意点があります。

知らない人にとっては驚きですが、同じ郵便番号だったとしても、市区町村どころか都道府県すらもまたぐケースがあります。

例えば、498-0000 は、三重県と愛知県で同じ郵便番号が割り当てられている地域があります。

"4980000",・・,"三重県","桑名郡木曽岬町,・・
"4980000",・・,"愛知県","弥富市",・・

もちろん都道府県だけではなく、町域や市区町村は、普通にまたいで同じ郵便番号が割り当てられる場合があります。なので、郵便番号が決定しても、住所を一意に特定することはできないという点は覚えておく必要があります。

郵便番号は単に配送のための番号であり、地形や運送上の理由により地域区分局が異なる地域を配送範囲に含めていたり、市区町村の合併や、支店・集配センターの統廃合などの都合で定期的に変更されるものなのです。

郵便番号データのカラム定義

最も良く使われる、郵便番号データダウンロードの「読み仮名データの促音・拗音を小書きで表記するもの」を対象に見ていきます。

このファイルのレイアウトは以下のように定義されています。

Untitled

ファイル中には以下のようなレコードが12万レコードほど格納されています。

13103,"106  ","1060045","トウキョウト","ミナトク","アザブジュウバン","東京都","港区","麻布十番",0,0,1,0,0,0