Python获取地点信息

在我们平时做项目的时候,可能时常会需要某一些地点的信息,比如地点的经度,纬度等等,那这些信息我们该如何获取呢?用浏览器去一个一个搜索嘛,不!!!效率太低了,我们可以通过调用百度API的引擎,用Python去获取地点的相关信息,再生成一个json文件,供我们以后使用,流程如下:

1.电脑访问百度地图的网址:百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com)

2.注册一个百度地图的账号

3.点击开发文档中的Web服务Api

4.点获取密钥

 5.创建一个应用 

应用名称可以随便填

 IP白名单可以直接设置为:0.0.0.0/0 

创建成功了,AK可以复制一下,后面需要用到这个东西,它被称为百度api的应用key

6.查看服务文档

在这个接口中,有许多的请求参数,但只有address和ak这两个参数是必须要写的, 图中

output=json,则指定了输出的格式为json,在后端发送请求的时候,只需要传入地点名字和ak(前面已经获取),就可以返回相关地点的信息

import requests
import json

# 百度api地理编码主要的两个参数:address(转换的地址) ak:百度api的应用key
def getlongitudeAndLatitude(address, ak):
    base_url = r'https://api.map.baidu.com/geocoding/v3/?'
    # 拼接字符串
    base_url = f"{base_url}address={address}&ak={ak}&output=json"
    # 请求url地址
    response = requests.get(base_url)
    # 获取地址,返回的是字符串形式
    loc: str = response.text
    print(loc)

if __name__ == "__main__":
    getlongitudeAndLatitude("鄱阳县", "MFFlFTtXeOOiXGfDGNGtmqA4lVhCEGPt")

我已经创建了一个应用,这个AK值是可以共用的,这边建议还是自己创建一个。 

现在我们就可以直接反复调用这个函数,然后通过访问字典的形式去获取我们想要的数据,这些数据我们可以存在自己自定义的字典中,然后生成json文件,以供备用。

import json

data = [{"place": "鄱阳县"}, {"time": 666666}]
# js = json.dumps(data)
json.dump(data, open('加油.json', 'w', encoding='utf-8'),indent=4, ensure_ascii=False)

这个代码运行可以在同级文件夹中生成一个"加油.json"的文件。

 

现在重点讲一下:ensure_ascii=False,如果在生成json文件的时候,不写这一句话,字典中的键值里的中文会用对应的ASCII码来表示,运行结果如下图所示:

这是因为json.dumps序列化时对中文默认使用的ASCII编码,如果想输出真正的中文需要指定ensure_ascii=False

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

詹小友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值