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

Python从JSON API获取'last'值遇KeyError问题求助

解决API获取'last'字段时的KeyError问题

我明白你折腾了好几种Python脚本还是碰到KeyError有多头疼——明明API返回里确实有'last'字段,就是拿不到,太闹心了。咱们一步步排查可能的问题,试试下面的方法:

  • 先确认API返回的实际结构
    很多时候KeyError不是因为字段不存在,而是它嵌套在更深的层级里。比如你直接写data['last'],但实际上'last'可能在ticker或者其他子字典下面。先写个简单脚本打印整个响应结构:

    import requests
    
    response = requests.get("https://cryptohub.online/api/market/ticker/PLSR/")
    data = response.json()
    print("API返回的完整数据:", data)
    

    看打印结果,如果是类似{"ticker": {"last": 0.00123, ...}}这种结构,那你得用data['ticker']['last']才能拿到值,直接取data['last']肯定会报错。

  • 检查请求是否真的成功
    有时候请求可能被拦截、返回错误页面(比如403/500状态码),这时候解析出来的JSON根本不是你预期的内容。先加个状态码检查:

    print("响应状态码:", response.status_code)
    if response.status_code != 200:
        print("请求失败了,可能是被限流或者API地址有变化")
    

    如果状态码不对,可能需要加请求头(比如User-Agent)模拟浏览器请求,或者确认API地址是否有效。

  • 排查JSON解析是否有问题
    少数情况下API返回的不是标准JSON,比如有多余的注释、前缀后缀,导致解析后结构异常。可以先打印原始响应文本看看:

    print("原始响应文本:", response.text)
    

    如果文本里有非JSON内容,可能需要先处理掉(比如用正则去掉多余部分)再解析。

  • 完整的调试示例脚本
    给你写个带异常处理的脚本,方便定位问题:

    import requests
    
    try:
        url = "https://cryptohub.online/api/market/ticker/PLSR/"
        # 模拟浏览器请求,避免被拦截
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
        response = requests.get(url, headers=headers)
        response.raise_for_status()  # 主动抛出HTTP错误
        
        data = response.json()
        print("完整返回结构:", data)
        
        # 根据实际结构调整路径,这里假设last在ticker下
        if "ticker" in data and "last" in data["ticker"]:
            last_value = data["ticker"]["last"]
            print(f"成功获取last值:{last_value}")
        else:
            print("未找到'last'字段,请检查返回的键名和层级")
            
    except requests.exceptions.RequestException as e:
        print(f"请求过程出错:{e}")
    except KeyError as e:
        print(f"KeyError:缺少字段'{e}',请确认字段路径")
    except ValueError:
        print("JSON解析失败,返回内容不是标准JSON")
    

如果运行后还是有问题,把打印出来的完整返回结构贴出来,就能精准找出问题所在啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:05:39