/gokenall

日本郵便の郵便番号データ(ken_all.csv)をGoから扱うためのライブラリ及びコマンドラインツール

Primary LanguageGoApache License 2.0Apache-2.0

gokenall

Build Status GoDoc apache license

日本郵便の郵便番号データ(ken_all.csv)をGoから扱うためのライブラリ及びコマンドラインツールです。

以下のような機能があります。

  • 最新のken_all.csvを日本郵便のサイトからダウンロード・解凍する。(コマンド名: Download)
  • 前回ダウンロード時から更新があるか確認する。(コマンド名: Updated)
  • データの使いづらい部分を加工する。(コマンド名: Normalize)
    • sjis→utf8
    • 半角カナ→全角カナ。ASCII文字→半角
    • 複数行に分割された行をマージ
    • 地名項目の運用上邪魔になる文字を修正
      • 「以下に掲載がない場合」は除去
      • 「~の次に番地がくる場合」は除去
      • 「~一円」は除去(但し地名が「一円」の場合は除く)
      • ()で囲まれている部分は除去。但し、可能なものは残すようにする。
        • (除去) その他
        • (除去) 地階・階層不明
        • (除去) *を除く
        • (残す) ○階
        • (分割) ○~○(丁目|番地|番)
        • (分割) ○、○、○(丁目|番地|番)
        • (分割) 地名、地名、地名

Usage

ライブラリ利用

import "github.com/oirik/gokenall"

GoDoc

コマンド利用

install

$ go get github.com/oirik/gokenall/cmd/kenall

Or download binaries from github releases

usage

$ kenall <command> [arguments]

(例)日本郵便のデータが更新された時だけダウンロードする。

  1. UPDATEDという名前でファイルを作り、中身を以下のようにします。
00010101
  1. 下記のようなコマンドを叩けば、更新されたときだけカレントディレクトリのken_all.csvが上書きされます。
$ kenall updated -p `cat UPDATED` > UPDATED && kenall download -x | kenall normalize -o ken_all.csv

詳しくはヘルプを参考にしてください。

$ kenall help
kenall is a tool for managing ken_all.csv

Usage:

  kenall <command> [arguments]

The commands are:

  download   Download ken_all.zip from japanpost website
  help       Show help information
  normalize  Normalize -make easy to use- input (file or standard input if no argument)
  updated    Read updated date of data from japanpost website. Exit status 0 if later than [argument](yyyyMMdd) or exit status 1.
  version    Show version information

Use "kenall help <command>" for more information about a command.

Todo

  • 単一JSONファイルへの変換
  • 郵便番号ごとのJSONファイルへの変換
  • READMEをもっと親切にする。