1
我将此作为MQTT消息接收器的一部分,并且我试图将代码移植到Python 3,问题与一些if,else语句一起使用绝对没有关于Python 3,例如这一次,如果语句适用于Python 2,但不适用于python 3
if message.topic == "ledDoorSW_mqtt":
if str(message.payload) == "1":
device.setPinHigh(13)
elif str(message.payload) == "0":
device.setPinLow(13)
我了解有关于如何每个版本的享受串根本性的分歧,但未能找到故障原因是这里的情况。
任何帮助表示赞赏!! 感谢..
这些实际上由我控制,在代码的其他部分,我决定什么字符串应该是主题和有效载荷。 – Mo3tasm
添加'print(message.topic);的输出。 print(type(message.topic)); print(message.payload); print(type(message.payload))'(就在第一个'if'之前,并且在Python 3中,其中这段代码据说不像预期的那样工作)。 – DeepSpace
我的猜测是'message.payload'是Python 3中的'bytes'对象,Python 2中只是'str'。如果是这样的话,您需要首先在Python 3中对其进行decode()。 – poke