# 网络请求系统实现:从城市名称获取天气信息


背景介绍

本项目旨在实现一个本地环境中独立运行的天气数据获取系统,通过调用指定API(如`https://api.example.com/weather`)获取指定城市当前天气信息,并以用户友好的方式返回结果。脚本需具备输入城市名称、调用API、解析响应数据及输出结果的功能,确保运行环境隔离,支持本地环境直接部署。

思路分析

本项目的核心功能包括:
1. 接收用户输入的城市名称
2. 调用网络请求函数获取天气数据
3. 解析返回的JSON数据并格式化输出
4. 确保代码的可读性与易维护性

关键知识点:
– 网络请求逻辑(GET/POST请求)
– 数据解析与格式化(JSON处理)
– 环境隔离(本地运行环境)

代码实现

import requests

def get_weather_info(city_name):
    url = f"https://api.example.com/weather/{city_name}"
    headers = {
        "User-Agent": "Mozilla/5.0",
        "Accept": "application/json"
    }

    try:
        response = requests.get(url, headers=headers)
        response.raise_for_status()  # 检查请求成功

        # 解析并返回数据
        data = response.json()
        weather_info = {
            "天气": data.get("天气"),
            "温度": data.get("温度")
        }
        print(f"{'天气': {weather_info['天气']}, 温度: {weather_info['温度']}}")

        return weather_info

    except requests.exceptions.RequestException as e:
        print("请求失败:", str(e))
        return {"天气": "未知", "温度": None}

# 示例使用
city = "北京"
result = get_weather_info(city)

总结

本项目实现了网络请求和数据解析的核心功能,通过本地环境实现独立运行,确保了代码的可运行性和安全性。代码简洁明了,注释清晰,便于理解和维护。该系统支持输入城市名称、调用API、解析并输出天气信息等核心功能,符合本地环境部署的要求。