KEN_ALL.csv のどこがだめなのかまとめてみる
KEN_ALL.csv はだめだとよく言われます。では何がだめなのでしょうか。 Blogや Twitterなどでよく語られているので、その内容を紹介してみたいと思います。
Blog 「ぐるぐる〜 」
まず、かなり網羅的にまとまっていたのが、下記の ブログ「ぐるぐる〜 」のエントリです。
項目としては、下記のようなものが上げられています。あるあるですね…
- 単一レコードの複数行分割
- 「以下に記載がない場合」、「次のビルを除く」を含むレコード
- 「〜」で範囲を示すレコード
- 「〜」や「以上」、「以下」を含むレコード
- 「以外」「を除く」を含むレコード
- 「その他」を含むレコード
- 「全域」を含むレコード
- 「(丁目)」、「(郡)」、「(番地)」などを含むレコード
- 「を含む」を含むレコード
- 「地階・階層不明」を含むレコード
- 複雑な、としか言い表せないレコード
- その他
一番くそだと思うのが、 1. 単一レコードの複数行分割 これに尽きます。 CSVの概念を覆してきます。固定長 CSVかよ。 これがある時点で、CSVを1行ずつ処理して… というのができなくなります。
Blog 「my-hobby」
こちらは、実際に zipnavi というサービスを作るにあたって直面した問題についてまとめられてます。
- 日本郵便の郵便番号データを解析してみる 第1回~住所のマージ編~ | my-hobby
- 単一レコードの複数行分割
- フラグ4の信頼性について
- 単一レコードの複数行分割
- 日本郵便の郵便番号データを解析してみる 第2回~括弧の意味編~ | my-hobby
- 町域にある「()」括弧 の扱い、()内データの展開について
- 日本郵便の郵便番号データを解析してみる 第3回~カンマなどの区切り文字編~ | my-hobby
- 区切り文字「、」「及び」「・」について
- 日本郵便の郵便番号データを解析してみる 第4回~範囲の指定編~ | my-hobby
- 範囲指定文字「~」「以上」「以下」の扱いについて
- 日本郵便の郵便番号データを解析してみる 第5回~「その他」編~ | my-hobby
- 「その他」の扱いについて
- 郵便番号データの廃止データを解析してみた | my-hobby
- 住所の廃止について
- 市町村合併によって住所が廃止されたケース
- 住所自体が廃止となったケース
- 住所の呼び方が変わったケース
- 住所の表記が変わったケース
- 住所の廃止について
Blog「Studio JamPack」
郵便番号データについて思ったこと – Studio JamPack
大口事業所はまた別データになってるんですよね(JIGYOSYO.CSV)
- 住所の郵便番号と大口事業所個別番号が別データとなっている
- 全国地方公共団体コードが規格に沿っていない件
- 郵便番号データでは5ケタしかなく、チェックデジットが省略されてる
郵便番号DBを利用するときに考慮すると幸せになれること – Studio JamPack
- 1つのクエリに2つ以上のレコードが返ってくる
- 町域がやたら長い(括弧表記されている)
- 廃止レコードが複数ある
- 8191131 福岡県
- 同じ町域でも郵便番号が異なる
- 8190166 福岡県 福岡市西区 横浜(1~2丁目)
- 8190366 福岡県 福岡市西区 横浜(3丁目)
- やたら大量の件数を返す
- 4520961 愛知県 清須市
サイト 「Qiita」
エンジニアのノウハウがつまったサイト Qiita でも時々話題になっています。
感想
本当につらいですね。日本郵便さん、元データ、なんとかならないものでしょうか。
世の中には同じような苦労をしてきている方がたくさんいらっしゃいます。その方々の先人の成果がOSSソフトウェアや、サービスとして存在していますので、次にはそのあたりも紹介してみたいと思います。
また、そもそもこの KEN_ALL.csvを使わなければこのような苦労はないわけで、KEN_ALL.csv 以外に、信頼できるデータがないものか、調査してみたいと思います。
KEN_ALL.csv の魅力について
こんにちは、ken_all です。
今日は KEN_ALL.csv の魅力についてお話したいと思います。
KEN_ALL.csv とは
まず、エンジニアであればKEN_ALL.csv をご存知ない方はいらっしゃらないとは思うのですが、簡単に説明しておくと、KEN_ALL.csv は、日本郵便が無料で提供している、日本の郵便番号と住所を網羅したcsvデータになります。
WEBサービスの住所を入力するフォームで、郵便番号を入力すると住所の欄が自動補填されたり、正しくない郵便番号かどうかをチェックされたりすると思うのですが、その処理を作る際に必要となるデータが KEN_ALL.csv になります。
KEN_ALL.csv のメリット
KEN_ALL.csvは下記のような特徴を持ち、誰でも簡単に使うことができるため、多くのエンジニアが便利に使っています。
- 日本全国の郵便番号を網羅
- 住所変更に追従
- 無料
- WEBサイトから誰でもダウンロード可能
KEN_ALL.csv のデメリット
次に KEN_ALL.csv のデメリットですが、
- csv の仕様のくせがすごい
これに尽きます。詳しくは他のサイトなどで探せばたくさん出きますので、詳細は他サイトを参照してください。
KEN_ALL.csv の魅力
上記のとおり、KEN_ALL.csv はみんなが欲しがる人気者なのですが、ちょっとドジっ子な性格なのです。
なので、みなさんがちょっと手をかけてみたくなり、いい感じにしてあげることで、「ワシが育てた」感を出すことができる最高の素材であると言えます。
Twitterなどでも、その性格にとりつかれた人々が定期的に話題にして盛り上がっています。
FizzBuzz 問題どや顔で解くひとなんかよりも "KEN_ALL.csv" をうまく扱える人の方が社会的貢献度高い - Togetterまとめ
みなさん KEN_ALL.csv 大好きですね!