Python调用高德API,实现批量获取地址经纬度,并写入excel文件

调用高德API实现批量输入地址,获取经纬度,并输出到excel表格

# 导入库
import requests,json
import xlsxwriter

# 定义变量
KEY = 'xxx' #此处填入你申请的key
URL_geocode = 'https://restapi.amap.com/v3/geocode/geo?'

# 获取经纬度
def gain_location(address):
    api_url = f'{URL_geocode}city=郑州市&address={address}
    &key={KEY}&output=json&callback=showLocation' #此处城市名可更改
    r = requests.get(api_url)
    r = r.text
    r = r.strip('showLocation(')
    r = r.strip(')')
    jsonData = json.loads(r)['geocodes'][0]['location']
    return jsonData

# 返回信息
def get_place_info(address):
    place_info = []
    for place in address:
            place_point = []
            place_point.append(place)
            location = gain_location(place)
            print(place,location)
            place_point.append(location)
            place_info.append(place_point)
    return place_info

# 自定义地址内容
address = input().split() #此处表示可以输入以空格相隔的地址
#也可以直接写成 address = ['地点1','地点2','地点3'] 的形式
result = get_place_info(address)

# 写入excel
book = xlsxwriter.Workbook('E:/bi/hui/biao.xlsx') #填写创建的excel表的存储地址及表名
sheet = book.add_worksheet()
col = ('place','location')
for i in range(0,2):
    sheet.write(0,i,col[i])
for i in range(0,len(address)):
    for j in range(0,2):
            sheet.write(i+1,j,result[i][j])
book.close()

获取用户key的方式可以在我的上一篇博客中查看~

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用Python高德地图API实现经纬度地址批量转换是可行的。首先,我们需要准备高德地图的API密钥,该密钥可以通过高德地图开发者平台申请获得。 接下来,我们可以使用Python中的requests库发送HTTP请求,通过调用高德地图的逆地理编码接口,将经纬度转换为地址。我们需要将API密钥和待转换的经纬度构建为合适的URL,并发送GET请求。高德地图API将返回JSON格式的数据,其中包含有关地址信息的详细内容。 在代码中,我们可以使用for循环来遍历经纬度的列表,对每个经纬度调用逆地理编码接口并解析返回的JSON数据。我们可以从返回的数据中提取出地址信息,并将其保存到一个新的CSV文件中。 以下是一个简单的示例代码: ```python import requests import csv api_key = "your_api_key" def get_address(lat, lng): url = f"https://restapi.amap.com/v3/geocode/regeo?key={api_key}&location={lng},{lat}&radius=1000&extensions=all&batch=true&roadlevel=1" response = requests.get(url) data = response.json() address = data['regeocodes'][0]['formatted_address'] return address def main(): with open('input.csv', 'r') as input_file, open('output.csv', 'w', newline='') as output_file: reader = csv.reader(input_file) writer = csv.writer(output_file) writer.writerow(['经度', '纬度', '地址']) for row in reader: lat, lng = row[0], row[1] address = get_address(lat, lng) writer.writerow([lat, lng, address]) print("地址转换完成!") if __name__ == '__main__': main() ``` 在这个示例中,我们假设输入文件是一个CSV文件,其中包含经纬度数据。我们将转换后的地址保存到新的CSV文件中,其中包含经度、纬度和地址信息。 通过运行这个Python脚本,我们可以批量转换经纬度地址,并将结果保存到输出文件中。这样,我们就可以在后续的工作中方便地使用地址信息了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值