我的代码:
myTopic = "lab"
myPayload = ""
qos = 1
myPayload = input('Enter a message to publish: ')
myAWSIoTMQTTClient.publish(myTopic, myPayload, qos)
当我运行脚本时,设备连接到 AWS IoT,并出现“输入要发布的消息:”提示。我输入“hello”(没有引号),它返回以下错误:
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
但是,当我用函数中的字符串替换 myPayload 变量时,它工作正常。同样,如果我设置 myPayload = "hello",它也可以工作。去掉引号 myPayload = hello,它会失败。
所以我确定 myAWSIoTMQTTClient.publish 正在寻找一个字符串,但为什么它不接受来自我的 input() 函数的字符串?