zipcloudという郵便番号から住所を検索できるAPIをpython3で利用しているときに、ターミナルで日本語が表示できなかったのでシェアします
元々のコード
import urllib.request url = 'http://zipcloud.ibsnet.co.jp/api/search?zipcode=1000005' contents = urllib.request.urlopen(url).read() print(contents) // ターミナルでの結果 b'{\n\t"message": null,\n\t"results": [\n\t\t{\n\t\t\t"address1": "\xe6\x9d\xb1\xe4\xba\xac\xe9\x83\xbd",\n\t\t\t"address2": "\xe5\x8d\x83\xe4\xbb\xa3\xe7\x94\xb0\xe5\x8c\xba",\n\t\t\t"address3": "\xe4\xb8\xb8\xe3\x81\xae\xe5\x86\x85",\n\t\t\t"kana1": " \xef\xbe\x84\xef\xbd\xb3\xef\xbd\xb7\xef\xbd\xae\xef\xbd\xb3\xef\xbe\x84" ,\n\t\t\t"kana2": "\xef\xbe\x81\xef\xbe\x96\xef\xbe\x80\xef\xbe\x9e\xef\xbd\xb8",\n\t\t\t"kana3": "\xef\xbe\x8f\xef\xbe\x99\xef\xbe\x89\xef\xbd\xb3\xef\xbe\x81",\n\t\t\t"prefcode": "13",\n\t\t\t"zipcode": "1000005"\n\t\t}\n\t],\n\t"status": 200\n}'
修正版
デコードしてやることで解決できました!
import urllib.request url = 'http://zipcloud.ibsnet.co.jp/api/search?zipcode=1000005' contents = urllib.request.urlopen(url).read() # ここが追加個所 contents = contents.decode('utf-8') print(contents) // 結果 { "message": null, "results": [ { "address1": "東京都", "address2": "千代田区", "address3": "丸の内", "kana1": "トウキョウト", "kana2": "チヨダク", "kana3": "マルノウチ", "prefcode": "13", "zipcode": "1000005" } ], "status": 200 }
コメントを残す