python +高德 +批量获取经纬度

复制代码
import requests
import openpyxl

# 定义函数

def Getlngat(address):

url = 'https://restapi.amap.com/v3/geocode/geo'
output = 'json'
ak = '#########'
add = address
url = url + '?' + 'address=' + add + '&output=' + output + '&key=' + ak # 拼接url
req = requests.get(url=url) # 发送请求
# 将其他编码的字符串解码成unicode
temp = req.json() # 对json数据进行分析
return temp

# 解析

def Analy(file_path):
wb =openpyxl.load_workbook(file_path)
ws = wb.active
ws.cell(1, 2).value = '纬度'
ws.cell(1, 3).value = '经度'
for i in range(2, ws.max_row+1):
try: # 异常捕获发生异常的坐标,不影响后续地点坐标获取
address = ws.cell(i, 1).value
res = Getlngat(address)
lng = res['geocodes'][0]['location'].split(',')[0] # 获取经度
lat = res['geocodes'][0]['location'].split(',')[1] # 获取纬度
ws.cell(i, 2).value = eval(lng) # 写入经度
ws.cell(i, 3).value = eval(lat) # 写入纬度
print(address, type(eval(lng)), lat)
except:
ws.cell(i, 4).value = "该地点目前未能获取,请重新尝试"
wb.save(file_path)

# 主函数

Analy(file_path=r"D:\PyCharm\zuobiao\地点坐标.xlsx")


详细查看高德开放平台

 https://lbs.amap.com/api/webservice/guide/api/georegeo#regeo





复制代码

 数据:

效果:

 

posted @   徐俊112  阅读(470)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示