使用python3+高德地图API 来获取各地区天气情况
说明:个人开发使用时想到获取天气看看情况,然后找到了高德的API,获取各个地区的天气情况
高德地图开发平台:https://lbs.amap.com/
- 老规矩,先注册登录。注册成功返回高德开发平台的首页。
- 点击头像——>选择应用管理 或者 点击控制台——>选择应用管理
- 点击应用管理——>选择我的应用——>点击创建新应用
- 输入自己的应用名称,然后选择应用类型为天气,点击创建该应用。
- 创建完应用之后,可以看到自己的应用已经创建成功,我们点击添加,去添加我们天气API的服务。服务平台选择Web服务,可以看到可使用服务里的天气查询API,然后同意高德地图的政策,点击提交。
注意:点击天气服务API可以跳转到天气查询的API文档
- 添加完成之后,可以查看到自己应用的key。这个key就是我们后端程序要使用的key。
文档使用说明:
天气查询API文档地址:https://lbs.amap.com/api/webservice/guide/api/weatherinfo
第一步,申请”web服务 API”密钥(Key);
第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送;
第三步,接收HTTP请求返回的数据(JSON或XML格式),解析数据。
天气查询的URL
URL:https://restapi.amap.com/v3/weather/weatherInfo?parameters
请求方式:GET
请求参数:key:你的应用key
city:查询城市的城市编码,下载城市编码文档
extensions:天气类型:base/all。base:返回实况天气;all:返回预报天气。根据具体情况选择。
示例代码
import requests
url = 'https://restapi.amap.com/v3/weather/weatherInfo?parameters'
params_realtime = {
'key':'你的应用key',
'city':'360731', # 从城市编码里获取的a丢包code
'extensions':'base' # 获取实时天气
}
params_estimate = {
'key':'你的应用key',
'city':'360731',
'extensions':'all' #获取预报天气
}
res = requests.get(url=url,params=params_estimate) # 预报天气
res2 = requests.get(url=url,params=params_realtime) # 实时天气
tianqi = res.json()
print(tianqi)
tianqi2 = res2.json()
print(tianqi2)
# print(tianqi.get('forecasts'))
# province = tianqi.get('forecasts')[0].get("province") # 获取省份
province = tianqi['forecasts'][0]["province"] # 获取省份
city = tianqi.get('forecasts')[0].get("city") # 获取城市
adcode = tianqi.get('forecasts')[0].get("adcode") # 获取城市编码
reporttime = tianqi.get('forecasts')[0].get("reporttime") # 获取发布数据时间
date = tianqi.get('forecasts')[0].get("casts")[0].get('date') # 获取日期
week = tianqi.get('forecasts')[0].get("casts")[0].get('week') # 获取星期几
dayweather = tianqi.get('forecasts')[0].get("casts")[0].get('dayweather') # 白天天气现象
nightweather = tianqi.get('forecasts')[0].get("casts")[0].get('nightweather') # 晚上天气现象
daytemp = tianqi.get('forecasts')[0].get("casts")[0].get('daytemp') # 白天温度
nighttemp = tianqi.get('forecasts')[0].get("casts")[0].get('nighttemp') # 晚上温度
daywind = tianqi.get('forecasts')[0].get("casts")[0].get('daywind') # 白天风向
nightwind = tianqi.get('forecasts')[0].get("casts")[0].get('nightwind') # 晚上风向
daypower = tianqi.get('forecasts')[0].get("casts")[0].get('daypower') # 白天风力
nightpower = tianqi.get('forecasts')[0].get("casts")[0].get('nightpower') # 晚上风力
print("省份:",province)
print("城市:",city)
print("城市编码:",adcode)
print("发布数据时间:",reporttime)
print("日期:",reporttime)
print("星期:",week)
print("白天天气现象:",dayweather)
print("晚上天气现象:",nightweather)
print("白天温度:",daytemp)
print("晚上温度:",nighttemp)
print("白天风向:",daywind)
print("晚上风向:",nightwind)
print("白天风力:",daypower)
print("晚上风力:",nightpower)