# 使用Python实现网络请求获取天气信息示例


背景介绍

在现代开发中,网络请求是获取实时数据的基础能力。本项目旨在通过Python实现一个简单的网络请求助手,帮助开发者快速获取天气信息。该方案采用requests库发送HTTP GET请求,解析返回的JSON数据,并通过用户交互完成输入参数的处理,最终展示输出结果。

思路分析

本项目的核心实现步骤包括:

  1. 输入处理:通过用户提供API URL和城市名称,实现参数的交互
  2. 网络请求:使用requests.get()发送HTTP请求
  3. 数据解析:解析返回的JSON数据并展示结果
  4. 异常处理:处理可能的错误信息,如无效的API URL或请求失败

该项目的实现依赖于Python的常见库,通过模拟用户交互,展示了数据结构解析和网络请求的实践。

代码实现

import requests

def fetch_weather_info(city):
    url = "http://api.weatherapi.com/v1/stations.json"
    params = {"city": city}

    # 参数从输入框获取
    input_text = input(f"Enter API URL and city: {url} (e.g., http://api.weatherapi.com/v1/stations.json) ")

    # 尝试解析参数
    try:
        response = requests.get(url, params=params)
        response.raise_for_status()
        data = response.json()
        print("获取成功!以下是实时天气信息:")
        print(f"温度: {data['data']['current']['temp_c']}℃")
        print(f"湿度: {data['data']['current']['humidity']}%%")
        print(f"风速: {data['data']['current']['wind_kph']} km/h")
    except requests.exceptions.RequestException as e:
        print("请求失败!请检查输入参数是否正确。")
        print(f"错误信息: {str(e)}")
    finally:
        # 清除输入框以避免残留
        input_text = ""

if __name__ == "__main__":
    city = input("Enter target city (e.g., 'New York'): ")
    fetch_weather_info(city)

总结

本项目通过Python实现了网络请求的基础功能,展示了HTTP请求库的使用场景。核心实现包括参数交互、JSON数据解析以及异常处理。该方案可独立运行,无需依赖第三方服务,为开发者提供了快速获取天气信息的实践机会。

学习价值

本项目帮助开发者理解网络请求的实现细节,掌握如何处理HTTP请求和JSON数据解析。通过模拟用户交互,展示了数据处理流程的完整实践,有助于提升编程能力。