不是所有的地址都能得得一个有效的地理编码的,需要检查status是否为0。
参考以下代码:
# coding=utf-8from 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']))
使用方敬吵法: 把代码保存成bmap.py python bmap.py 或 python bmap.py 服饰厂 运行后会自动采集百度地图中所有的结果,保存为旅戚以tab分割的txt文件拆稿陵,方便导入各种数据库。你看一下 python的 requests 模块然后具拦空弊体的调用 看亏缺文档: http://developer.baidu.com/map/place-api.htm
其实就是 GET请求 加上参数,然后处理返回数据就可以了。
json 或简族者 xml 格式都可以。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)