【发布时间】: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() 回调的消息,但我没有编辑任何关于我的代码的信息。我猜该请求可能被网络阻止了。换了网之后就正常了。谢谢你的建议。