【问题标题】:start_symbol_ticker_socket() no callback to my callable functionstart_symbol_ticker_socket() 没有回调到我的可调用函数
【发布时间】:2022-12-14 04:43:29
【问题描述】:

我尝试使用start_symbol_ticker_socket() 来创建一个线程来自动打印最新价格。但是当我执行我的代码时,什么也没有发生,也没有任何错误消息。

这是我的代码。

from binance.client import Client
import pandas as pd
from time import sleep, time
from binance import ThreadedWebsocketManager


def ReadKeySecret():
    f = open('BNAPI_TEST.txt','r')
    api_key = f.read()
    f = open('BNST_TEST.txt','r')
    api_secret = f.read()
    return api_key, api_secret


def btc_trade_history(msg):
    btc_price = {'error':False}
    if msg['e'] != 'error':
        print(msg)
        btc_price['last'] = msg['c']
        btc_price['bid'] = msg['b']
        btc_price['best'] = msg['a']
        btc_price['error'] = False
    else:
        btc_price['error'] = True

def GetNewPrice(API_KEY,API_SECRET):   #test by BTCUSDT
    bsm = ThreadedWebsocketManager(API_KEY,API_SECRET)
    bsm.start()
    bsm.start_symbol_ticker_socket(callback =btc_trade_history, symbol='BTCUSDT')
    sleep(2)
    bsm.stop()


API_KEY,API_SECRET = ReadKeySecret()
client = Client(API_KEY,API_SECRET)
client.API_URL = 'https://testnet.binance.vision/api'
GetNewPrice(API_KEY,API_SECRET)

我可以使用 client.get_symbol_ticker(symbol="BTCUSDT") 获取 BTC 价格。

可以给我任何建议吗?谢谢。

【问题讨论】:

  • 目前您根本没有使用客户端——您只是创建了一个实例,但从未实际执行对任何提到的方法的调用。
  • @rammelmueller 现在我可以获得有关 start_symbol_ticker_socket() 回调的消息,但我没有编辑任何关于我的代码的信息。我猜该请求可能被网络阻止了。换了网之后就正常了。谢谢你的建议。

标签: python api


【解决方案1】:

我遇到了同样的问题。经过几天的调查,我发现 python-binance 1.0.16 的线程处理程序存在问题(可能是与 python 3.10 的兼容性问题)

这里也有关于该问题的主题:

我现在最好的解决方法是将 python-binance 降级到 1.0.15 并使用 python 3.9 而不是 3.10。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多