您没有收到消息是因为您忘记导入 json 和 pprint - 所以它在 print(message) 之前出现错误(但它不显示)并且它会跳过其余代码。
编辑:
基于答案Python not throwing errors or exceptions, websocket on_message
如果你设置了,你可以看到所有的错误
websocket._logging._logger.level = -99
from __future__ import print_function # `__future__` has to be before other imports
import websocket
import json
import pprint
websocket._logging._logger.level = -99
SOCKET = "wss://stream.binance.com:9443/ws/ethusdt@kline_1m"
def on_open(ws):
print('opened connection')
def on_close(ws):
print('closed connection')
def on_message(ws, message):
#global close
#global is_candle_closed
print('received message')
print('type:', type(message))
print('message:', message)
json_message = json.loads(message)
pprint.pprint(json_message)
candle = json_message['k']
print('candle:', candle)
is_candle_closed = candle['x']
close = candle['c']
print('is_candle_closed:', is_candle_closed)
print('close:', close)
print('------')
ws = websocket.WebSocketApp(SOCKET, on_open=on_open, on_close=on_close, on_message=on_message)
ws.run_forever()
结果:
opened connection
received message
type: <class 'str'>
message: {"e":"kline","E":1639098788823,"s":"ETHUSDT","k":{"t":1639098780000,"T":1639098839999,"s":"ETHUSDT","i":"1m","f":702855009,"L":702855056,"o":"4133.15000000","c":"4135.57000000","h":"4135.94000000","l":"4133.11000000","v":"4.56980000","n":48,"x":false,"q":"18893.20796000","V":"3.10460000","Q":"12835.23286700","B":"0"}}
{'E': 1639098788823,
'e': 'kline',
'k': {'B': '0',
'L': 702855056,
'Q': '12835.23286700',
'T': 1639098839999,
'V': '3.10460000',
'c': '4135.57000000',
'f': 702855009,
'h': '4135.94000000',
'i': '1m',
'l': '4133.11000000',
'n': 48,
'o': '4133.15000000',
'q': '18893.20796000',
's': 'ETHUSDT',
't': 1639098780000,
'v': '4.56980000',
'x': False},
's': 'ETHUSDT'}
candle: {'t': 1639098780000, 'T': 1639098839999, 's': 'ETHUSDT', 'i': '1m', 'f': 702855009, 'L': 702855056, 'o': '4133.15000000', 'c': '4135.57000000', 'h': '4135.94000000', 'l': '4133.11000000', 'v': '4.56980000', 'n': 48, 'x': False, 'q': '18893.20796000', 'V': '3.10460000', 'Q': '12835.23286700', 'B': '0'}
is_candle_closed: False
close: 4135.57000000
------