【问题标题】:Print function not working inside a function in Juypter notebook打印功能在 Jupyter 笔记本中的功能内不起作用
【发布时间】:2021-12-09 23:00:48
【问题描述】:

打印在执行中不起作用是它正在打印接收到的消息,但不是消息本身,即 print(message) 在 juypter notebook 中没有显示输出

import websocket
import sys
from __future__ import print_function

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 closes, in_position
    print('received message')
    json_message = json.loads(message)
    pprint.pprint(json_message)
    type(message)
    print(message)
    print('2222')
    candle = json_message['k']
    print(candle)
    is_candle_closed = candle['x']
    close = candle['c']

ws = websocket.WebSocketApp(SOCKET, on_open=on_open, on_close=on_close, on_message=on_message)
ws.run_forever()

【问题讨论】:

  • 我在任何地方都看不到print(message)。你指的不是type(message),是吗?因为是的,那不会打印任何东西。
  • 我已经更新了代码,但是 print(message) 没有被打印出来,这很奇怪,因为收到的消息正在被打印出来......

标签: python jupyter-notebook


【解决方案1】:

您没有收到消息是因为您忘记导入 jsonpprint - 所以它在 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
------

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多