Публикация клиента 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
Так что я думаю, что это просто пост базы знаний для тех, кто случайно сталкивался с моей проблемой.