2016-11-03 2 views
0

Mein Code:Python MQTT-Client veröffentlichen ist der Umgang mit nicht variabel

myTopic = "lab" 
myPayload = "" 
qos = 1 
myPayload = input('Enter a message to publish: ') 
myAWSIoTMQTTClient.publish(myTopic, myPayload, qos) 

Als ich das Skript ausführen, das Gerät an AWS IoT verbindet, und die „eine Nachricht eingeben veröffentlichen:“ Eingabeaufforderung angezeigt. Ich betrete „Hallo“ (ohne Anführungszeichen), und es gibt die folgende Fehlermeldung:

Traceback (most recent call last): 
File "customAWSIoTscript.py", line 65, in <module> 
myPayload = input('Enter a message to publish: ') 
File "<string>", line 1, in <module> 
NameError: name 'hello' is not defined 

Allerdings, wenn ich den myPayload Variable mit einem String in der Funktion ersetzen, es funktioniert gut. Ebenso, wenn ich myPayload = "Hallo" einstelle, funktioniert es auch. Lassen Sie die Anführungszeichen weg myPayload = Hallo, und es schlägt fehl.

Also habe ich festgestellt, dass myAWSIoTMQTTClient.publish nach einer Zeichenfolge sucht, aber warum akzeptiert es nicht die Zeichenfolge von meiner Funktion input()?

Antwort

0

Die Antwort wurde in den AWS-Entwicklerforen empfangen. Lange Geschichte kurz - es ist ein bekannter Fehler in AWS IoT Python SDK v1.1.0, und wird als nächstes Update behandelt werden. In der Antwort, die ich als Antwort markiert habe, ist ein Hotfix enthalten.

https://forums.aws.amazon.com/thread.jspa?threadID=242462

Also ich denke, das ist nur eine Wissensbasis Post ist für diejenigen, die sich über meine Frage kommen passieren.

Verwandte Themen