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

Python请求雅虎财经接口解析JSON报JSONDecodeError如何解决

错误原因
  • 雅虎财经的API接口有反爬校验,会直接拦截没有携带合法User-Agent请求头的请求,你当前代码发起的是无标识请求,接口返回的是空内容、403错误页或者HTML格式的拦截提示,完全不是JSON结构,所以解析时触发JSONDecodeError
  • 你没有提前对请求响应的状态码做校验,直接默认请求成功就解析内容,没有覆盖请求失败的场景
解决代码
import requests
import json

# 配置请求头,模拟正常浏览器请求
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

url = "https://query2.finance.yahoo.com/v7/finance/options/ivr"
resp = requests.get(url, headers=headers)

# 先校验请求是否成功
if resp.status_code == 200:
    # 可以直接用requests内置的json方法,不需要手动loads
    resp_dict = resp.json()
    print(resp_dict)
else:
    print(f"请求失败,状态码:{resp.status_code},返回内容:{resp.text[:200]}")
补充调试提示

如果修改后依然报错,可先打印resp.status_code和resp.text确认返回内容,若返回429状态码说明触发频率限制,可间隔一段时间再请求或者添加代理IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:57:02