1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python 调用高德 API 实现地址转为经纬度

Python 调用高德 API 实现地址转为经纬度

时间:2024-04-20 08:53:11

相关推荐

Python 调用高德 API 实现地址转为经纬度

Python 调用高德 API 实现地址转为经纬度

前言一、申请高德的Key二、要转换的地址放入文件三、编写代码四、运行结果总结

前言

偶然接触到这个东西,记录一下


一、申请高德的Key

高德开放平台网址

注册登录后,点击右上角头像旁边的控制台

点击“我的应用”,然后右边有个“创建新应用”,点击后输入一些内容,就创建成功了,key就获取到了


二、要转换的地址放入文件

可选 csv、xlsx、txt,推荐 txt ,因为 txt 无论如何都不会报错,csv 和 xlsx 高概率会报 UTF-8 编码无法转换的错,网上的解决方案都是修改编码,这样不行,所以还是 txt 吧

一个地址换一行,如果用 xlsx 的话也一样,一个地址换一行


三、编写代码

这代码也不是我本人写的,我也不怎么会 Python ,所以没有注释讲解。。。

将下面的key替换成你刚刚创建的新应用下面的 key,然后地址文件改成你们刚刚创建的txt

import requestsimport codecsfrom openpyxl import Workbookwb = Workbook()sheet = wb.activedef get_location(address, i):print(i)# 这是高德的API接口地址url = "/v3/geocode/geo"data = {# 替换为你在高德地图开发者平台申请的key'key': 'a8c3f94ebc2fea82c283effa241aa066','address': address}r = requests.post(url, data=data).json()sheet["A{0}".format(i)].value = address.strip('\n')print(r)if r['status'] == '1':if len(r['geocodes']) > 0:GPS = r['geocodes'][0]['location']sheet["B{0}".format(i)].value = '[' + GPS + ']'else:sheet["B{0}".format(i)].value = '[]'else:sheet["B{0}".format(i)].value = '未找到'# 将地址信息替换为自己的文件,一行代表一个地址,根据需要也可以自定义分隔符# 读取地址文件。我的为D:\下载\Documents\地点.txtf = codecs.open(r"D:\下载\Documents\地点.txt", "r", "utf-8")i = 0while True:line = f.readline()i = i + 1if not line:f.close()# 设置保存路径wb.save(r"D:\下载\Documents\经纬度信息.xlsx")breakget_location(line, i)


四、运行结果

你设置的路径下生成了结果文件,打开看看

准确度还挺高,这种直接写小区名和学校名都能识别到,高德 niubility


总结

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。