2016-09-02 23 views
3

助けてください:) 私はちょうどPythonでMQTTを使い始めました。私は、次のプログラムを実行すると :paho MQTT on_messageは面白いメッセージを返す - python

import paho.mqtt.client as mqtt 

def on_connect(client, userdata, flags, rc): 
    print("Connected with result code "+str(rc)) 
    client.subscribe("watchdog/#") 

def on_message(client, userdata, msg): 
    message = str(msg.payload) 
    print(msg.topic+" "+message) 

client = mqtt.Client() 
client.username_pw_set('XXXX', password='XXXXXXX') 
client.on_connect = on_connect 
client.on_message = on_message 

client.connect("XXXX", XXXXX, 60) 

client.loop_forever() 

をペイロードは、常に次のテキストいます

b'XXX '

XXXはメッセージであるが、B' '部分は常に表示されます。 一度私は棚のクライアントからオフに同じメッセージを開いて、メッセージは正常です...私は問題がコードにあると仮定しますが、私はどこに見つけることができません。

どのようなヘルプや指示がありますか?

ありがとうございました!

+0

['b' for' bytes'](https://www.python.org/dev/peps/pep-0358/) –

答えて

1

Moses Koledoyeが言うように、bはバイトです。つまり、印刷しているのはバイトセットの文字列バージョンです。 str(msg.payload)を単にmsg.payloadに変更した場合は、別の出力が得られます。

しかし、メッセージのペイロードが何であるかについては話していないので、msg.payloadを印刷しても馬鹿げているかもしれません。たとえば、送信されるメッセージが実際にバイトの文字列である場合...

関連する問題