和风天气API:从接入到实战应用指南

作者:youqing · 2025-10-29 · 阅读时间:9分钟

收藏本文,10 分钟完成接入,立刻拥有全球 20 万+ 城市、分钟级降水预报!


一、核心优势与行业地位 🏆

根据 2025 年国内天气 API 评测报告,和风天气在三大关键领域表现突出:

  • 数据覆盖全面性:全球 20 万+ 城市、中国 3000+ 市县区,15 类数据(实时、7 天预报、空气质量、灾害预警、海洋气象等)
  • 预报精准度:短临降水 F1≥0.85,24h 温度误差 ±1-2℃,灾害预警提前≥30 分钟
  • 开发者体验:免费 1000 次/天、开源社区、完善文档

代码示例讲解概念 一行行对比「和风 vs 其他 API」返回字段差异,秒懂选型理由!

横向对比更新频率:天气 15-30 分钟,分钟级降水 1-5 分钟,预警实时推送。
👉 完整 33 项评测报表 下载

和风天气 API 基础能力
国内乡镇覆盖率 支持中国 3000+ 市县区
分钟级降水预报 1 公里精度,1-2 小时预报,5 分钟更新
灾害预警类型 数百种(暴雨/暴雪/台风/沙尘暴等),5 分钟更新
温度误差(24h) ±1-2℃(城市区域)
预警提前量 ≥30 分钟
降水预报准确率(F1) ≥0.85

二、快速入门:获取与配置 API 密钥 🔑

① 注册账号与创建应用

  1. 访问 和风天气官网 注册
  2. 控制台 → 应用管理 → 新建应用 → 生成 API Key(公钥+私钥)

② 密钥安全管理

  • 切勿在前端硬编码私钥!
  • 推荐服务器中转请求
  • 定期轮换 Key,泄露立即作废

③ 选择服务端点

# 免费订阅
https://devapi.qweather.com/v7/weather/now?

# 商业订阅
https://api.qweather.com/v7/weather/now?

代码安全审计 扫描本地 .env 文件,确保 Key 不会被意外提交到 Git!


三、核心接口详解与代码实战 💻

3.1 实时天气 /weather/now ☀️

import requests

params = {"location": "101020100", "key": "YOUR_KEY"}
r = requests.get("https://devapi.qweather.com/v7/weather/now?", params=params)
data = r.json()

if data["code"] == "200":
    now = data["now"]
    print(f"温度:{now['temp']}℃  体感:{now['feelsLike']}℃  天气:{now['text']}")

代码优化助手params 提取为全局常量,减少重复拼接开销!

关键字段temp feelsLike text windSpeed humidity


3.2 7 天预报 /weather/7d 📅

r = requests.get("https://devapi.qweather.com/v7/weather/7d?", params=params)
data = r.json()
for day in data["daily"]:
    print(f"{day['fxDate']}: {day['tempMin']}~{day['tempMax']}℃  {day['textDay']}")

代码片段解析助手 秒懂 daily 数组里每个字段的中文含义与单位!

应用场景:旅行规划、农业灌溉、室外活动风险评估


3.3 分钟级降水 /minutely/5m 🌧️

r = requests.get("https://devapi.qweather.com/v7/minutely/5m?", params=params)
data = r.json()
for m in data["minutely"]:
    print(f"{m['fxTime'][11:16]} → 降水强度:{m['precip']} mm/h")

智能代码审查助手 检查 fxTime 切片边界,防止凌晨 00:00 越界!

  • 时空分辨率:500 m × 500 m,5 分钟更新
  • 适合:物流调度、出行 App 实时提醒、共享雨伞投放

四、四大实战应用场景 🛠️

4.1 10 分钟构建天气数据看板(卡拉云+和风 API)📊

  1. 数据源填写:

    实时天气:https://devapi.qweather.com/v7/weather/now?key=KEY&location={{select1.value}}
    7日预报:https://devapi.qweather.com/v7/weather/7d?key=KEY&location={{select1.value}}
  2. ECharts 可视化:

    xAxis: { data: hourlyData.map(d => d.fxTime.slice(11,16)) },
    series: [{ data: hourlyData.map(d => d.temp) }]

    代码示例讲解概念 一键生成「折线图 vs 柱状图」两种组件代码,直接复制进卡拉云!


4.2 自动天气预报邮件系统 📧

逻辑

  1. 定时任务(8:00)
  2. 调用和风 API 获取 7 天预报
  3. 拼接 HTML 邮件
  4. SMTP 发送
import schedule, smtplib
from email.mime.text import MIMEText

def job():
    data = get_7d_forecast("101020100")
    html = "<h2>广州7日预报</h2><ul>"
    for d in data:
        html += f"<li>{d['date']}: {d['tempMin']}-{d['tempMax']}℃ {d['textDay']}</li>"
    html += "</ul>"
    send_mail(html)

schedule.every().day.at("08:00").do(job)

代码安全审查 扫描 SMTP 密码硬编码,自动替换为环境变量!


4.3 小程序集成方案 📱

  1. 下载官方图标库 qweather-icons.css
  2. 全局样式引入:
    @font-face {
    font-family: 'qweather-icons';
    src: url('/static/qweather-icons.ttf');
    }
  3. 配置域名白名单(https://devapi.qweather.com
  4. 动态渲染图标:
    <view class="qi-{{item.icon}}"></view>

    JavaScript代码反混淆专家 解开小程序主包加密,确保图标字体路径不被篡改!


4.4 大模型 Agent 集成 🤖

通过 LangChain 将和风天气接入 Qwen-7B-Chat:

def weather_agent(query):
    city = extract_city(query)
    city_id = city_id_map[city]
    url = f"https://devapi.qweather.com/v7/weather/24h?location={city_id}&key=KEY"
    data = requests.get(url).json()
    return f"当前{data['now']['temp']}℃,{data['now']['text']}。未来24小时..."

代码优化专家助手extract_city 替换为 Trie 树,解析速度提升 3 倍!

应用场景:智能对话系统回答天气问题,并给出穿衣、出行建议。


五、性能优化与最佳实践 ⚙️

5.1 请求频率控制 & 缓存 🔄

  • 免费额度:1000 次/天
  • TTLCache 示例(30 分钟):
from cachetools import TTLCache
cache = TTLCache(maxsize=100, ttl=1800)

def get_weather(location):
    if location in cache:
        return cache[location]
    data = fetch_from_api(location)
    cache[location] = data
    return data

代码优化助手fetch_from_api 改为异步协程,QPS 提升 5 倍!

5.2 多节点灾备 🛡️

# 主节点
https://api.qweather.com
# 备用节点
https://api2.qweather.com

代码安全审计 扫描自动切换逻辑,防止因 DNS 劫持导致流量泄露!

5.3 错误处理 🔍

错误码 含义
401 Key 无效
204300 参数错误
204301 Key 过期
204304 超过限额

智能代码审查助手 把错误码映射封装为枚举类,告别魔法数字!


六、未来展望:气象 API 的技术演进 🔮

  1. 多源数据融合:卫星、雷达、地面站 + 用户众包照片 → 联邦学习校正
  2. 行业方案精细化
    • 航空 SaaS:跑道级预报
    • 物流:实时路况 + 天气动态路线
    • 农业:土壤传感器 + 天气 → 作物生长建议

和风天气已布局 气象数据湖联邦学习框架,允许客户用私有数据本地训练,保障隐私同时提升精度。


七、总结 🏁

和风天气API 凭借 免费额度充足、数据覆盖全面、文档完善 的特点,是个人开发者和小型项目的理想起点。企业级应用建议:

  1. 免费版做 MVP 验证
  2. 按需升级订阅(标准版/高级版)
  3. 关注行业定制方案(物流、航空、农业)

现在就复制文中的 Python 代码,10 分钟接入全球 20 万+ 城市精准气象数据,让你的应用「随风而动」!