展开全部
不是所有的地址都能得得一个有效的地理编码的,需要62616964757a686964616fe4b893e5b19e31333366303765检查status是否为0。
参考以下代码:# coding=utf-8
from urllib.request import urlopen, quote
from json import loads as loadjson
ak = '--------------------------------'
def _url(service,**kv):
qstr = ''
url = 'http://api.map.baidu.com/' \
+ service + '/v2/' \
+ '?output=json' \
+ '&ak=' + ak
for k, v in kv.items():
url += '&' + k + '=' + quote(v)
return url
def baidumapapi(service,**kv):
data = urlopen(_url(service,**kv)).read().decode('utf-8')
return loadjson(data)
geo = baidumapapi('geocoder',address='gd')
if geo['status'] == 0:
try:
print(geo['result']['location']['lng'])
except (Exception,):
print(geo)
else:
print('{}({})'.format(geo['msg'] if 'msg' in geo.keys() else geo['message'],
geo['status']))