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

如何通过Python WebSocket从多字典实时获取并更新股票lp数据

解决方案

方案一:使用全局字典(快速改造现有代码)

这种方式可以直接基于你现有的全局变量思路扩展,同时满足“每只股票lp对应唯一映射”和“实时价格字典”的需求:

  1. 初始化全局价格字典
# 全局字典,键为股票token(tk),值为最新成交价(lp)
final_feed_dict = {}
  1. 修改WebSocket回调函数更新字典
    在event_handler_feed_update中,从收到的tick数据里提取token和lp,直接更新字典:
def event_handler_feed_update(tick):
    # 从tick字典中提取token(请根据券商API实际键名调整,比如部分API用'token')
    token = tick.get('tk')
    # 提取最新成交价lp(请根据券商API实际键名调整,比如部分API用'last_price')
    last_price = tick.get('lp')
    
    if token and last_price is not None:
        # 更新字典,自动维护每个token对应的唯一最新价格
        final_feed_dict[token] = last_price
        
        # 若需要单独访问某只股票的价格,直接通过字典键获取,例如:
        # token_43232_lp = final_feed_dict.get('43232')

说明

  • 字典的token键天然是每只股票的唯一标识,通过final_feed_dict[token]就能访问对应股票的最新lp,相当于实现了“每只股票lp对应唯一变量”的需求,且比单独定义全局变量更灵活(新增订阅股票时无需修改代码)。
  • 每次收到新tick时,字典会自动覆盖旧值,保证存储的始终是最新价格。

方案二:使用类封装(规范代码,避免全局变量)

如果你的代码规模较大,推荐用类封装订阅和价格管理逻辑,避免全局变量带来的耦合问题:

class NFOFeedManager:
    def __init__(self):
        # 实例内部维护实时价格字典
        self.final_feed_dict = {}
    
    def event_handler_feed_update(self, tick):
        token = tick.get('tk')
        last_price = tick.get('lp')
        
        if token and last_price is not None:
            self.final_feed_dict[token] = last_price
    
    # 可选:添加获取单只股票最新价的便捷方法
    def get_last_price(self, token):
        return self.final_feed_dict.get(token, None)

# 初始化管理器实例
feed_manager = NFOFeedManager()

# 订阅WebSocket时,指定回调为实例方法(请根据券商API的订阅方式调整)
# 示例:websocket_client.subscribe(nfo_token_list, feed_manager.event_handler_feed_update)

说明

  • 类实例的final_feed_dict负责统一维护所有股票的最新价格,通过feed_manager.get_last_price('43232')可以快速获取指定股票的最新lp。
  • 这种方式符合软件工程的封装原则,方便后续扩展功能(比如添加价格变动告警、历史价格存储等)。

注意事项

  • 请根据你使用的券商API实际返回的tick字典键名,调整代码中的'tk'和'lp'(比如部分API会用token或last_traded_price作为键)。
  • 可以添加异常捕获逻辑,处理tick数据为空、键不存在等情况,避免程序异常崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:01:24