if语句适用于Python 2但不适用于python 3

时间:2017-05-29 19:09:11

标签: python-3.x mqtt

我将此作为MQTT消息接收器的一部分,并且我正在尝试将代码移植到Python 3,问题在于一些if,else语句,它们在Python 3上什么都不做,例如这个,

if message.topic == "ledDoorSW_mqtt":
    if str(message.payload) == "1":
        device.setPinHigh(13)
    elif str(message.payload) == "0":
        device.setPinLow(13)

我理解每个版本如何处理字符串存在根本区别,但无法找出原因。

任何帮助表示赞赏!! 感谢..

1 个答案:

答案 0 :(得分:0)

感谢“poke”和“DeepSpace”解决方案是写

message.payload.decode()

因为有效负载是字节而不是字符串。