python实现百度地图API获取某地址的经纬度

综合编程 2018-01-27 阅读原文

申请百度API

1、打开网页 http://lbsyun.baidu.com/index.php?title=首页

选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号及邮箱认证。

激活后可看到后台页面,现在可以开始创建应用了,这里请求校验方式有两种,一种是白名单IP,另一种是SN校验(旁边有计算的说明),我选择SN校验:

成功后会获得自己的AK和SK,接下来说明如何计算sn

计算SN(python3.x)

from urllib import parse
import hashlib

def get_urt(addtress):

    # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak
    queryStr = '/geocoder/v2/?address=%s&output=json&ak=你的ak' % addtress

    # 对queryStr进行转码,safe内的保留字符不转换
    encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")

    # 在最后直接追加上yoursk
    rawStr = encodedStr + '你的sk'

    #计算sn
    sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())
    
    #由于URL里面含有中文,所以需要用parse.quote进行处理,然后返回最终可调用的url
    url = parse.quote("http://api.map.baidu.com"+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")   
    
    return url

该url可直接进行进行访问,返回的是json格式,如下

{"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地产小区"}}
Python_博客园

责编内容by:Python_博客园阅读原文】。感谢您的支持!

您可能感兴趣的

A Tale of Two Functions In Which Ben Learns 1 Is The Loneliest Number So, my biggest shortcoming as a developer is my toolkit of algorithms a...
使用python对cocos2dx的手游图片资源进行加密... 导言 由于项目的需要,要对游戏的图片资源进行加密,目前比较常用的做法应该是使用TexturePacker的加密功能。但因为我们的整个打包流程都是python脚本控制,自动化完成的,如果要使用TexturePacker的加密功能,就要把T...
【第七章】python算法刷题开始(3) 今天继续刷题,但感觉今天遇到的每个题都有点困惑,大家一起帮忙看看: 1、旋转字符串 旋转字符串 我的代码: """ @param str: An array of char @p...
微服务设计模式之 API 网关 API 网关是目前非常成熟的一种微服务与外界通讯方式的一种选型,当前你的架构是从单体架构 Monolithic 迁移过来的时候,你会发现新的服务无法很好地从旧有系统中接管流量。 这个接管,或者说迁移的过程很复杂,也很危险,一般...
使用 Python 从零开始开发区块链应用程序... 本教程将向具有任何编程技能水平的 Python 开发人员介绍区块链。通过从零开始实现一个 公有区块链 并构建一个简单应用程序来利用它,您将了解区块链到底是什么。 您将能够使用 Flask 微框架为区块链的不同功能创建端点,比如...