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

无法获取JSON数据元素,如何提取ACC股票期货指定到期日的买卖总量?

提取NSE ACC期货指定到期日的买卖总量

实现步骤及代码

NSE的公开API需要携带合法请求头才能正常访问,以下是完整的可运行代码:

import requests

# 设置请求头,模拟浏览器访问以避开反爬拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
    'Accept-Language': 'en-US,en;q=0.9'
}

# 指向ACC期货数据的API地址
api_url = 'https://www.nseindia.com/api/quote-derivative?symbol=ACC'

try:
    # 发送GET请求获取数据
    response = requests.get(api_url, headers=headers)
    response.raise_for_status()  # 检查请求是否成功
    data = response.json()

    # 指定要查找的到期日(需与返回数据中的日期格式完全匹配)
    target_expiry = '2022-10-27'

    # 遍历所有期货合约,匹配目标到期日
    for contract in data['stocks']:
        if contract['metadata']['expiryDate'] == target_expiry:
            # 提取目标字段
            total_buy_qty = contract['marketDeptOrderBook']['totalBuyQuantity']
            total_sell_qty = contract['marketDeptOrderBook']['totalSellQuantity']
            print(f"ACC期货 {target_expiry} 到期合约数据:")
            print(f"总买单量: {total_buy_qty}")
            print(f"总卖单量: {total_sell_qty}")
            break
    else:
        print(f"未找到 {target_expiry} 到期的ACC期货合约")

except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")
except KeyError as e:
    print(f"JSON结构变动,缺失指定字段: {e}")

关键说明

  • 请求头必须设置:NSE服务器会校验User-Agent,缺失或不合法会返回403错误。
  • JSON结构对应:返回数据中stocks是所有ACC期货合约的列表,每个合约的metadata存到期日,marketDeptOrderBook下是买卖总量字段。
  • 异常处理:捕获请求错误和字段缺失问题,避免程序直接崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:50:27