Python通过高德地图API批量获取目的地天气情况

也是之前的公司需求,放上来记录一下。

import pandas as pd
import requests
import json

AK = "*******"   #你自己注册获取的key

def getWeather(place):
    url = f"https://restapi.amap.com/v3/weather/weatherInfo?city={place}&extensions=base&key={AK}"  # 高德地图extension=all可以查询预报天气
    res = requests.get(url)
    json_data = json.loads(res.text)

    if json_data["status"] == "1":       #这里有个坑,注意1是string
        return int(json_data["lives"][0]["temperature"]), int(json_data["lives"][0]["humidity"]), json_data["lives"][0]["reporttime"]     #实况天气每小时更新多次,预报天气每天更新3次,分别在8、11、18点左右更新。还有风速等数据,根据自己需要提取
    else:
        return "no data", json_data["info"], json_data["infocode"]


if __name__ == "__main__":
    data = pd.read_excel("place.xlsx")
    result = []
    for i in range(0,len(data)):
        place = data.iloc[i,0]
        temperature, humidity, time = getWeather(place)
        result.append([place, temperature, humidity, time])
    pd.DataFrame(result).to_excel(
        "result.xlsx",
        header=["地点", "温度", "湿度", "更新时间"],
        encoding="utf-8"
    )
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
利用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脚本,我们可以批量转换经纬度为地址,并将结果保存到输出文件中。这样,我们就可以在后续的工作中方便地使用地址信息了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值