# 使用Python提取天气信息的脚本实现


背景介绍

在现代编程实践中,天气信息需求日益增加。无论是日常的生活规划、项目开发,还是自动化测试,获取精准的天气数据已成为关键任务。然而,直接获取天气数据往往面临数据格式不统一、API接口不稳定等问题。为此,我们设计了一个使用Python的HTTP请求脚本,能够从用户输入的城市名称或日期中解析出天气信息。

思路分析

  1. 输入处理:脚本接收用户输入的参数,例如城市名称或日期,通过命令行或输入流获取。
  2. HTTP请求:利用requests库发送GET请求到天气数据API,例如`https://api.weatherapi.com/v1/nu/`。
  3. 数据解析:接收JSON响应后,通过json.loads()函数解析数据,并提取关键字段(如温度、风速、天气状况等)。
  4. 异常处理:在请求过程中加入异常处理逻辑,防止出现网络错误或解析失败的情况。

代码实现

import requests

def fetch_weather_info(user_input):
    try:
        # 构造请求参数
        url = "https://api.weatherapi.com/v1/nu/forecast"
        params = {
            "query": user_input
        }

        # 发送HTTP请求
        response = requests.get(url, params=params)

        # 处理响应
        response.raise_for_status()  # 如果请求失败,抛出异常

        # 解析JSON数据
        weather_data = response.json()
        if not weather_data:
            print("无法获取天气信息,请提供有效的输入参数。")
            return None

        # 提取天气数据
        temperature = weather_data[0]["current"]["temp_c"]
        weather_condition = weather_data[0]["current"]["condition"]
        wind_speed = weather_data[0]["current"]["wind_speed"]

        print(f"天气数据:温度 {temperature}℃,天气状况 {weather_condition},风速 {wind_speed} m/s")
        return {
            "temperature": temperature,
            "weather_condition": weather_condition,
            "wind_speed": wind_speed
        }

    except requests.exceptions.RequestException as e:
        print("网络请求失败,请检查输入参数是否正确。")
        return None

# 示例使用
if __name__ == "__main__":
    user_input = input("请输入城市名称或日期(如 '北京' 或 '2023-08-08'):")
    result = fetch_weather_info(user_input)
    if result:
        print("天气信息解析结果:")
        result

总结

本脚本通过Python的requests库实现了对用户输入天气信息的解析,能够提取温度、天气状况和风速等关键参数。其优势在于实现简洁、可扩展性强,适合处理简单的天气信息请求。

代码说明
– 使用requests.get()发送HTTP请求,参数为query,获取天气数据。
– 解析JSON响应,提取关键字段,输出结果。
– 异常处理机制,避免请求失败的情况。

通过该脚本,用户可以直接使用Python代码获取天气信息,提高工作效率。在实际应用中,可根据需要扩展参数或处理更多数据格式。