Публикация клиента Python MQTT не обрабатывает переменную

Мой код:

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

Когда я запускаю сценарий, устройство подключается к IoT AWS и появляется приглашение "Введите сообщение для публикации:". Я ввожу "привет" (без кавычек), и он возвращает следующую ошибку:

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

1 ответ

Получил ответ на форумах разработчиков AWS. Короче говоря, это известная ошибка в AWS IoT Python SDK v1.1.0, которая будет исправлена ​​в следующем обновлении. В ответе есть исправление, помеченное как ответ.

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

Так что я думаю, что это просто пост базы знаний для тех, кто случайно сталкивался с моей проблемой.

Другие вопросы по тегам