使用方法
$ pip install jusho
でインストール。 github
from jusho import Jusho, Address, City, Prefecture
postman = Jusho()
# 郵便番号から住所検索
print(postman.by_zip_code('160-0021')) # '1600021', '〒1600021' などなど
# [Address(id=116156, city=City(id=1972, prefecture=Prefecture(id=36, kanji='東京都', kana='トウキョウト', eng='TOKYO T...
# 都道府県一覧
print(postman.prefectures)
# [Prefecture(id=0, kanji='北海道', kana='ホッカイドウ', eng='HOKKAIDO'), Prefecture(id=3, kanji='青森県', kana='アオモリケ...
# 都道府県の検索
osaka = postman.search_prefectures('大阪', 'kanji')[0]
print(postman.cities(osaka))
# [City(id=3613, prefecture=Prefecture(id=78, kanji='大阪府', kana='オオサカフ', eng='OSAKA FU'), kanji='大阪市都島区', ka...
# 都道府県を指定して市町村検索。指定せずに、全市町村から検索することもできます
shimamoto = postman.search_cities('三島郡島本町', prefecture=osaka)[0]
print(postman.addresses(shimamoto))
# [Address(id=264932, city=City(id=3799, prefecture=Prefecture(id=78, kanji='大阪府', kana='オオサカフ', eng='OSAKA FU'), kanji='三島郡島本町', kana='ミシマグンシマモトチョウ', eng='MISHIMA ...
# 町域検索。同様に市町村指定することもできます
aoba = postman.search_addresses('青葉', city=shimamoto)[0]
# `postman.search_addresses('青葉', prefecture=osaka)`, `postman.search_addresses('青葉')` なども有効ですが
# 結果は異なります(検索するスコープが異なるため)
print(aoba.hyphen_zip)
# 618-0015
admin_division_code: str = aoba.admin_division_code # 27301
old_zip_code: str = aoba.old_zip_code # 618
zip_code: str = aoba.zip_code # 6180015 郵便番号
prefecture: Prefecture = aoba.prefecture # Prefecture(id=78, kanji='大阪府', kana='オオサカフ', eng='OSAKA FU')
city: City = aoba.city # City(id=3799, prefecture=Prefecture(id=78, kanji='大阪府', kana='オオサカフ', eng='OSAKA FU'), kanji='三島郡島本町', kana='ミシマグンシマモトチョウ', eng='MISHIMA GUN SHIMAMOTO CHO')
print('\n'.join((
aoba.kanji, # 青葉
aoba.kana, # アオバ
aoba.eng, # AOBA
'--------',
aoba.concat_kanji, # 大阪府 三島郡島本町 青葉
aoba.concat_kana, # オオサカフ ミシマグンシマモトチョウ アオバ
aoba.concat_eng, # Aoba, Mishima Gun Shimamoto Cho, Osaka Fu
'--------',
aoba.city.kanji, # 三島郡島本町
aoba.city.kana, # ミシマグンシマモトチョウ
aoba.city.eng, # MISHIMA GUN SHIMAMOTO CHO
'--------',
aoba.city.concat_kanji, # 大阪府 三島郡島本町
aoba.city.concat_kana, # オオサカフ ミシマグンシマモトチョウ
aoba.city.concat_eng, # Mishima Gun Shimamoto Cho, Osaka Fu
'--------',
aoba.prefecture.kanji, # 大阪府
aoba.prefecture.kana, # オオサカフ
aoba.prefecture.eng, # OSAKA FU
)))
郵便番号⇔住所変換ライブラリの『Jusho』
を紹介します(ステマ)
従来でもposutoというライブラリがあり、こちらもほぼ同等の情報を提供しています。
しかし、内部でjsonデータをdictとして保持しているためメモリを多く使い、かつ郵便番号→住所の一方向の検索しかできないという欠点があり、自分が使うには少々勝手が悪かったので新たにデータベースにデータを格納するタイプのライブラリにしました。
そのおかげで住所→郵便番号の検索もできるようになり、使い勝手がよくなったと思います。
データは日本郵便が公式で公開しているものを用い、一部データ抜けがある分に関しては自分で補いました。
使用方法は使用方法
の通りです。
以下のように動作するdemoも用意しています。
何かバグやリクエストなどあればgithubのほうによろしくお願いします。
ぜひ便利にお使いください!