0

我的代码:

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() 函数的字符串?

4

1 回答 1

0

在 AWS 开发人员论坛上收到了答案。长话短说 - 这是 AWS IoT Python SDK v1.1.0 中的一个已知错误,将在下一次更新中解决。在我标记为答案的回复中引用了一个修补程序。

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

所以我想这只是一个知识库帖子,供那些碰巧遇到我的问题的人使用。

于 2016-11-04T03:26:19.593 回答