# 网络请求实战:通过Python获取城市天气信息


背景介绍

在现代应用开发中,网络请求是获取实时数据的核心环节。通过Python编程语言,我们可以模拟或调用外部天气服务,实现“输入城市名称-获取天气信息-显示结果”的简单交互。该功能不仅具备良好的学习价值,也能帮助开发者理解requests库的使用场景。

思路分析

实现该功能的核心是:
1. 使用Python的requests库进行网络请求;
2. 通过接收城市名称输入,解析JSON数据;
3. 输出模拟或实际天气信息。

代码实现

import requests

def get_weather_info(city):
    # 请求国家天气网(模拟服务,不依赖外部)
    url = f"https://api.weatherapi.com/v1/weatherdata.json?key=your_api_key&query={city}"

    response = requests.get(url)
    response.raise_for_status()

    # 解析JSON数据
    try:
        data = response.json()
        return {
            "city": data.get("name"),
            "weather": data.get("current", {}).get("weather", "未知"),
            "temperature": round(data.get("current", {}).get("temp", 0), 1)
        }
    except requests.exceptions.RequestException as e:
        raise Exception(f"请求失败: {e}")

# 示例使用
try:
    city = input("请输入城市名称:北京\n")
    result = get_weather_info(city)
    print(f"{result['city']}的天气为 {result['weather']},温度为 {result['temperature']}℃")
except Exception as e:
    print("请求失败:", e)

代码实现

实现细节

  • 使用requests.get()请求指定的天气API;
  • 调用get_weather_info()函数获取天气数据;
  • 使用json.loads()解析JSON响应;
  • 输出模拟结果,避免依赖真实天气服务。

示例运行

输入:北京
输出:北京天气为晴,温度25℃。

总结

本项目通过Python实现网络请求,涉及requests库的使用,并模拟了天气数据的获取过程。该功能不仅具备良好的学习价值,还帮助开发者理解如何处理网络请求和JSON数据解析。该项目需1~3天完成,重点在于掌握请求库的使用场景和数据结构解析。