百度地图api用python行吗

如题所述

今天我使用百度地图api获取地址,我是通过发送HTTP服务实现的(当然这其中肯定要使用自己的秘钥),返回的格式你可以自己决定,可以是xml或者json。

我这里提供一个例子吧:


而百度地图提供的例子是这样的:

[html] view plain copy

    ?ak=E4805d16520de693a3fe707cdc962045  

    &callback=renderReverse  

    &location=39.983424,116.322987  

    &output=json  

    &pois=1  

    我提取返回的json中的位置信息,提取方法代码如下:

    [python] view plain copy

    #encoding=utf8  

    import json  

    import urllib2  

    import httplib  

    #import urllib  

    url =

    ak = 'XXX' #百度地图api密钥  

    #back='&callback=renderReverse&location='  

    back='&location='  

    location='34.992654,108.589507'  

    output = '&output=json&pois=0'  

    url = url + '?' + ak + back + location + output  

    temp = urllib2.urlopen(url)  

    #console.log(data)  

    hjson = json.loads(temp.read())  

    location = hjson["result"]["formatted_address"] #省,市,县  

    print location  

    info = hjson["result"]["sematic_description"]  #详细描述  

    print info  

    刚刚开始的时候我是按照百度地图提供的例子去拼接 url 的,于是每次我调用的时候总是会提示一下错误的:


    我搜了很多这个问题的解决方案,都说是格式问题,需要ASCLL的格式才能解析,解决方法是修改配置文件的编码方式,但是说的不清楚,根本就无法动手,所以我真的没辙了,我最后是看看百度地图api给的文档,无意中观察到了他给的例子是带返回类型的,于是我将url的内容修改了:

    原内容是这样的:

    [html] view plain copy

    ?ak=E4805d16520de693a3fe707cdc962045  

    &callback=renderReverse  

    &location=39.983424,116.322987  

    &output=json  

    &pois=1  

    修改后的是:(除掉callback就行)

    [html] view plain copy

    ?ak=E4805d16520de693a3fe707cdc962045  

    &location=39.983424,116.322987  

    &output=json  

    &pois=1  

    再次执行的时候,正确解析出,而且提取出内容了。



    至此提取成功,问题解决,写这个真的是因为我在解决这个问题的时候搜了很多信息,都是没有解决方案

温馨提示:答案为网友推荐,仅供参考