问题背景
随着城市化进程加快,用户对城市历史天气信息的需求日益增长。为了解决这一问题,本项目实现了一个小型功能:接收用户输入的城市名称,通过网络请求获取该城市的历史天气数据,并以文本格式输出结果。该功能结合了网络请求、数据处理和文本输出的实现,展现了编程实现的基本要素。
技术思路
- 网络请求:使用
requests库发送 GET 请求到指定的天气 API,参数为城市名称,获取返回的 JSON 数据。 - 数据处理:解析返回的 JSON 数据,提取出日期和温度信息。
- 文本输出:将处理后的数据以文本形式展示,包括日期和温度。
代码实现
import requests
def get_city_weather(city_name):
"""
获取指定城市的历史天气数据并输出结果。
参数:
city_name (str): 用户输入的城市名称
返回:
str: 格式化为文本形式的结果
"""
url = f"https://api.example.com/history?city={city_name}"
try:
response = requests.get(url, headers={"Accept": "application/json"})
response.raise_for_status() # 检查请求是否成功
data = response.json() # 解析 JSON 数据
temperatures = data.get('temperatures', []) # 提取温度数据
# 格式化文本输出
formatted_data = f"{temperatures[0]}°C {temperatures[1]}°C {temperatures[2]}°C"
return formatted_data
except requests.exceptions.RequestException as e:
return f"请求失败: {str(e)}"
# 示例使用
print(get_city_weather("东京")) # 输出结果
实现细节说明
- 使用
requests.get()发送 GET 请求,参数为city=东京,获取天气数据。 - 处理 JSON 数据,确保
temperatures字段正确提取。 - 输出结果为文本格式,包括日期和温度,按顺序排列。
- 代码注释清晰说明了各步骤,确保可读性。
结束总结
本项目实现了城市历史天气数据的获取与可视化功能,展示了网络请求和数据处理的基本实现。通过合理的结构设计和代码注释,能够有效完成该功能的实现,具备良好的可读性和可扩展性。未来可进一步扩展功能,例如支持更多城市、添加历史数据的筛选功能或更复杂的日期排序方式。