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

如何从Python Response对象打印JSON中temp键的值?报错求助

解决Python获取JSON数据时读取"temp"键报错的问题

嘿,我来帮你搞定这个问题!从你描述的情况来看,报错大概率出在JSON数据解析或者键路径不正确这两个环节,咱们一步步排查:

第一步:先确认请求是否成功,响应是否为有效JSON

很多时候报错是因为请求没成功(比如返回404/500错误),网站返回的不是JSON而是错误页面,这时候解析JSON肯定会失败。你可以先在simple_get里加一些调试信息:

import requests

def simple_get(url):
    response = requests.get(url)
    # 先检查请求状态码,200代表成功
    print(f"请求状态码: {response.status_code}")
    # 打印前500个字符的原始响应,看看是不是真的JSON
    print(f"原始响应片段: {response.text[:500]}")
    return response

# 调用函数,替换成你的目标URL
resp = simple_get("https://your-target-url.com")

如果状态码不是200,那得先解决请求失败的问题(比如检查URL是否正确、有没有需要的请求头、是否需要代理等);如果原始响应是HTML代码,那说明网站没返回JSON,得调整请求方式或者确认接口地址。

第二步:检查JSON结构,确认"temp"键的位置

如果请求成功且是有效JSON,那可能是你找错了"temp"的位置——很多JSON数据是嵌套结构,比如temp可能在weather或者data这样的子对象里,直接取json_data["temp"]就会报KeyError。

你可以先把整个JSON结构打印出来看看:

from pprint import pprint  # 用pprint会让结构更清晰

json_data = resp.json()
pprint(json_data)

比如打印出来的结构是这样的:

{
    "status": "success",
    "data": {
        "weather": {
            "temp": 28,
            "humidity": 60
        }
    }
}

那你就得逐层获取:json_data["data"]["weather"]["temp"],而不是直接取json_data["temp"]。

第三步:加上异常处理,让程序更健壮

为了避免程序直接崩溃,建议在解析和取值的时候加上异常捕获:

try:
    json_data = resp.json()
    # 根据实际结构调整键的路径
    temp_value = json_data["data"]["weather"]["temp"]
    print(f"当前温度: {temp_value}")
except ValueError as e:
    print(f"解析JSON失败啦:{e},可能返回的不是有效JSON")
except KeyError as e:
    print(f"找不到键 {e} 哦!请检查JSON结构里有没有这个键,或者路径是否正确")

按照这个流程排查,应该就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:00:41