You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用OpenWeather API的Python程序接收城市输入后停止运行问题

问题原因

  • 修改后的代码遗漏了import requests导入语句:原可运行代码的首行引入了requests依赖库,修改后删除了该行,执行到requests.get()时会直接触发未定义错误,程序静默崩溃退出,无后续输出。
  • 无异常捕获与请求校验逻辑:即使出现网络异常、API密钥错误、输入城市不存在等问题,程序也不会输出错误提示,直接终止运行。

解决方法

  1. 补全import requests语句到代码的首行,保证依赖库正常导入。
  2. 增加请求校验和异常捕获逻辑,方便快速定位各类报错场景。

修改后的可运行代码如下:

import requests

def current_weather():
    city_name = input('What city are you in?: ')
    # 替换为你自己的OpenWeather API密钥
    api_key = 'My api code'
    url = 'http://api.openweathermap.org/data/2.5/weather?q={}&appid={}'.format(city_name, api_key)
    try:
        # 增加超时设置,避免网络差时长时间无响应
        resp = requests.get(url, timeout=10)
        # 校验HTTP请求状态是否正常
        resp.raise_for_status()
        info = resp.json()
        # 校验OpenWeather返回的业务状态
        if info.get('cod') == 200:
            print(info)
        else:
            print(f"API返回错误:{info.get('message', '未知业务错误')}")
    except Exception as e:
        print(f"运行出错:{str(e)}")

current_weather()

如果修改后仍有报错,可优先排查以下场景:

  • 输入的城市名拼写正确,重名城市可添加国家码后缀区分,比如输入Paris,FR对应法国巴黎,避免匹配到其他同名城市
  • 确认你使用的API密钥有效,未超出调用频率限制

内容的提问来源于stack exchange,提问作者IdkCodePlsHelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:06:04