这是为之后EPS8266获取天气信息所做的前置测试,一个简单的小测试
1、注册和风天气,获得个人key
前往https://dev.qweather.com/ 注册成功后,选择应用管理、创建应用、选择免费开发版、选择web API即可获得个人key。

和风.png
2、查看开发文档
得到个人key后,点击开发文档,选择需要获取的信息写代码。但其实请求的URL都有相同处。
请求实时天气需要请求的URL为
- 商业版
https://api.qweather.com/v7/weather/now?[请求参数] - 开发版
https://devapi.qweather.com/v7/weather/now?[请求参数]
请求3天天气预报需要请求的URL为
- 商业版
https://api.qweather.com/v7/weather/3d?[请求参数] - 开发版
https://devapi.qweather.com/v7/weather/3d?[请求参数]
由此可见在天气这里,有差别的只有最后面的参数。
上面的URL都需要我们补充请求参数

image-20220909190737643.png
其中必选参数有:
key:就是上文获得的个人key
location:是要获取数据的地区代码
由于我只需要我学校所在地的天气,就单独搜索了江门市的地区代码
https://geoapi.qweather.com/v2/city/lookup?location=jiangmen&key=个人KEY
直接在浏览器搜索就能得到

地区id.png
3、Python编写代码
import requests
myKey = '&key=个人key' # 和风天气Key
City = 'location=101281101' # 江门城市代码
url_api_weather = 'https://devapi.qweather.com/v7/weather/now?' # 实时天气
url_api_3dweather = 'https://devapi.qweather.com/v7/weather/3d?' # 3天天气
url_api_air = 'https://devapi.qweather.com/v7/air/now?' # 实时空气质量
除了可以查天气还能查空气质量
def get_now_weather(): # 实时天气
url = url_api_weather+City+myKey
print(url)
return requests.get(url).json()
def get_3day_weather(): # 3天天气
url = url_api_3dweather+City+myKey
return requests.get(url).json()
def get_air(): #空气质量
url = url_api_air+City+myKey
return requests.get(url).json()
对不同的请求所对应的URL进行拼接
if __name__=='__main__':
CurrentWeather = get_now_weather()
ThreeDayWeather = get_3day_weather()
CurrentAirLevel = get_air()
# print(CurrentWeather)
print('广东省', '江门市')
print('当前温度:', CurrentWeather['now']['temp'], '当前体感温度:', CurrentWeather['now']['feelsLike'], '天气状况:',
CurrentWeather['now']['text'])
print('相对湿度:', CurrentWeather['now']['humidity'],'累计降水量:',CurrentWeather['now']['precip'],'空气质量指数:',
CurrentAirLevel['now']['aqi'])
print('更新时间:', CurrentWeather['updateTime'])
print()
print(ThreeDayWeather['daily'][0]['fxDate']+':'+'温度:', ThreeDayWeather['daily'][0]['tempMin']+'℃~'+
ThreeDayWeather['daily'][0]['tempMax']+'℃', '天气状况:', ThreeDayWeather['daily'][0]['textDay'])
print(ThreeDayWeather['daily'][1]['fxDate'] + ':' + '温度:', ThreeDayWeather['daily'][1]['tempMin'] + '℃~' +
ThreeDayWeather['daily'][1]['tempMax'] + '℃', '天气状况:', ThreeDayWeather['daily'][1]['textDay'])
print(ThreeDayWeather['daily'][2]['fxDate'] + ':' + '温度:', ThreeDayWeather['daily'][2]['tempMin'] + '℃~' +
ThreeDayWeather['daily'][2]['tempMax'] + '℃', '天气状况:', ThreeDayWeather['daily'][2]['textDay'])
最后输出结果

结果.png