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