背景介绍
随着城市化进程的加快,人们越来越依赖天气预报来规划日常生活。本项目旨在实现用户输入城市名称后,通过网络请求获取天气数据的功能。通过使用Python的requests库,我们能够实现基础的网络请求与数据解析,为用户提供简洁透明的天气信息展示。
思路分析
核心思路
- 网络请求:使用
requests库发送GET请求到天气数据API,例如通过https://api.weatherapi.com/v1/ydx.json接口获取数据。 - 数据解析:从返回的JSON数据中提取温度、湿度、风速等关键信息,并将其格式化为用户易读的输出。
- 错误处理:在代码中添加异常处理机制,确保在API返回错误时能正确提示用户异常信息。
代码实现
import requests
def get_weather_info(city):
try:
# 设置请求头,避免重复请求
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.616.28 Safari/537.36"
}
# 发送GET请求
response = requests.get(
f"https://api.weatherapi.com/v1/ydx.json?query={city}",
headers=headers,
timeout=10
)
# 处理响应数据
data = response.json()
# 提取关键信息
weather_info = {
"温度": f"{data['data']['current']['temp']}/C",
"湿度": f"{data['data']['current']['humidity']}%",
"风速": f"{data['data']['current']['wind_speed']}/m/s"
}
# 输出天气信息
print(f"当前天气:{weather_info['温度']} / 温度, {weather_info['湿度']} / 湿度, {weather_info['风速']} / 风速")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
总结
本项目展示了网络请求与数据处理的核心能力。通过使用Python的requests库,我们实现了城市天气信息的获取与输出,具备良好的可读性和可维护性。在整个实现过程中,掌握了如何处理网络请求的细节,例如设置请求头、处理超时异常,以及如何解析JSON数据中的天气信息。最终输出的功能能够在1~3天内完成,为后续开发提供了良好的基础。