专业接各种小工具软件及爬虫软件开发,联系Q:2391047879

使用Requests的天气查询命令行工具

发布时间: 2025-07-01 09:36:01 浏览量: 本文共包含778个文字,预计阅读时间2分钟

用Python打造轻量级天气查询工具

在终端直接查询天气,是不少开发者偏爱的效率方案。基于Python的`requests`库,只需二十行代码就能实现一个实时天气查询工具。本文将手把手拆解开发逻辑,并分享如何用命令行提升工具实用性。

核心逻辑与API选择

工具的核心在于通过API获取天气数据。推荐使用免费的OpenWeatherMap接口,注册账号即可获取API密钥(每月10万次免费调用)。相较于国内商业API,它的响应速度稳定且支持全球城市检索,适合个人开发者。

数据解析部分需要处理JSON响应中的嵌套结构。例如,实际温度位于`main.temp`字段,但体感温度`feels_like`和风速`wind.speed`分散在不同层级,需逐层提取关键数据。

代码实现细节

通过`argparse`模块构建命令行参数解析器,用户可通过`-c`指定城市名称(默认北京)。代码中特别加入`try-except`块捕获`requests.exceptions.RequestException`网络异常,避免程序因断网直接崩溃。

```python

import requests

import argparse

def get_weather(api_key, city):

url = "

params = {"q": city, "appid": api_key, "units": "metric"}

try:

response = requests.get(url, params=params)

data = response.json

if data["cod"] != 200:

return f"错误:{data['message']}

temp = data["main"]["temp"]

feels_like = data["main"]["feels_like"]

return f"{city}当前温度:{temp}℃,体感:{feels_like}℃

except Exception as e:

return f"请求失败:{str(e)}

if __name__ == "__main__":

parser = argparse.ArgumentParser

parser.add_argument("-c", "--city", default="Beijing")

args = parser.parse_args

print(get_weather("你的API密钥", args.city))

```

提升实用性的三个技巧

1. 密钥安全管理:将API_KEY存储在环境变量中(如`export OWM_KEY='your_key'`),代码通过`os.getenv('OWM_KEY')`调用,避免密钥硬编码泄露风险

2. 数据缓存:使用`sqlite3`模块保存最近查询结果,减少重复请求次数

3. 单位切换:增加`-u`参数支持华氏度/摄氏度切换,拓展国际使用场景

安装与使用示例

通过`pip install requests`安装依赖后,执行`python weather.py -c Shanghai`即可查看上海实时温度。如需部署为系统命令,可在Linux系统创建软链接`ln -s /path/weather.py /usr/local/bin/weather`,实现全局调用。

工具后续可扩展空气质量指数、降水概率等功能。通过`crontab`设置定时任务,还能实现每日天气推送——代码虽小,却能解决真实场景中的效率痛点。