郵便番号から住所を取得

Google Map Apiにパラメーターを送ります。

import urllib.request
import urllib.parse

API = "https://maps.googleapis.com/maps/api/geocode/json"

values = {
	"address": "160-0002",
	"language": "ja",
	"sensor": "false"
}
params = urllib.parse.urlencode(values)

url = API + "?" + params
print("url=", url)

data = urllib.request.urlopen(url).read()
text = data.decode("utf-8")
print(text)

url= https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=160-0002&language=ja
{
“results” : [
{
“address_components” : [
{
“long_name” : “160-0002”,
“short_name” : “160-0002”,
“types” : [ “postal_code” ]
},
{
“long_name” : “四谷坂町”,
“short_name” : “四谷坂町”,
“types” : [ “political”, “sublocality”, “sublocality_level_2” ]
},
{
“long_name” : “新宿区”,
“short_name” : “新宿区”,
“types” : [ “locality”, “political” ]
},
{
“long_name” : “東京都”,
“short_name” : “東京都”,
“types” : [ “administrative_area_level_1”, “political” ]
},
{
“long_name” : “日本”,
“short_name” : “JP”,
“types” : [ “country”, “political” ]
}
],
“formatted_address” : “日本 〒160-0002”,
“geometry” : {
“bounds” : {
“northeast” : {
“lat” : 35.6920455,
“lng” : 139.7292123
},
“southwest” : {
“lat” : 35.6885298,
“lng” : 139.7245306
}
},
“location” : {
“lat” : 35.6907555,
“lng” : 139.7272033
},
“location_type” : “APPROXIMATE”,
“viewport” : {
“northeast” : {
“lat” : 35.6920455,
“lng” : 139.7292123
},
“southwest” : {
“lat” : 35.6885298,
“lng” : 139.7245306
}
}
},
“place_id” : “ChIJoebNl_SMGGAR4LtICJbkh5I”,
“types” : [ “postal_code” ]
}
],
“status” : “OK”
}

ビットコインでいきたい。
bitflyerから取得する。

import urllib.request
import urllib.parse

url = "https://api.bitflyer.jp/v1/getboard"

# values = {
# 	"product_code": "BTC_JPY",
# }
# params = urllib.parse.urlencode(values)

# url = API + "?" + params
# print("url=", url)

data = urllib.request.urlopen(url).read()
text = data.decode("utf-8")
print(text)

Traceback (most recent call last):
File “app.py”, line 14, in
data = urllib.request.urlopen(url).read()
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 163, in urlopen
return opener.open(url, data, timeout)
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 472, in open
response = meth(req, response)
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 582, in http_response
‘http’, request, response, code, msg, hdrs)
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 510, in error
return self._call_chain(*args)
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 444, in _call_chain
result = func(*args)
File “/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/urllib/request.py”, line 590, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

HTTP Error 403: Forbiddenと出ています。
>特定のアクセス者にページを表示する権限が付与されず、アクセスが拒否されたことを示すもの。また、サイトの制作者側の設計ミスによる障害やサイトが非常に混雑している時、URLが間違っている場合にも表示される事がある。

なに!!!!!!!?

CCさん。大塚さん、顔が広いらしいですね。

url = "https://coincheck.com/api/ticker"

あら、いけますね♪ 403は、後で確認しましょう。
[vagrant@localhost python]$ python3 app.py
{“last”:911398.0,”bid”:911266.0,”ask”:911422.0,”high”:916800.0,”low”:895000.0,”volume”:2483.42296672,”timestamp”:1532828344}