見出し画像

[Python]郵便番号から住所を検索してみる

1.何をするのか

今回は郵便番号を入力して住所を検索します。具体的にはこちらのサイトの提供しているAPIを呼び出して住所の情報を検索します。以下の三点の流れで実装していきます。

1.  呼び出すAPI元のURLにリクエストを送る
2. APIから返ってきたjson文字列を辞書型に変換する
3. 欲しい情報に整形して出力する

2.コード

import json
import sys
import requests

#ハイフンありなしどちらでも入力可能
postal_code = input("郵便番号を入力してください(7桁)")
#呼びだすAPI元のURL
RECEST_URL = "http://zipcloud.ibsnet.co.jp/api/search?zipcode={0}".format(postal_code)

#住所
address = ""
#住所のカナ
kana = ""

response = requests.get(RECEST_URL)
json_result = response.text
#json文字列から辞書型へ変換
json_to_dic_result = json.loads(response.text)

#該当する情報の判定
#2019/02/06追記 != None を == Noneへ変更
if json_to_dic_result["message"] == None:
    result_dic = json_to_dic_result["results"][0]
else:
    print("お探しの住所は見つかりませんでした(´・∀・`)")
    sys.exit()

for i in range(1, 4):
    address += result_dic["address" + str(i)]
    kana += result_dic["kana" + str(i)]

context = {"郵便番号:": postal_code, "カナ:": kana, "住所:": address}

print("|-- {0:^10} --|".format("検索結果"))
for k, v in context.items():
    print(k, v)

3.実行結果

郵便番号を入力してください(7桁)113-0034
|--    検索結果    --|
郵便番号: 113-0034
カナ: トウキョウトブンキョウクユシマ
住所: 東京都文京区湯島

郵便番号を入力してください(7桁)1111111
お探しの住所は見つかりませんでした(´・∀・`)


いいなと思ったら応援しよう!