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()?