Предотвращение преобразования base64 полезной нагрузки сообщения mqtt - PullRequest
0 голосов
/ 07 мая 2020

Есть ли способ предотвратить автоматическое c преобразование полезной нагрузки сообщения mqtt? Когда я пытаюсь записать сообщения, они преобразуются в строку, например, «0» преобразуется в \ x30, где 1 байт преобразуется в 4 байта, занимая пространство. Вот фрагмент кода для on_message

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))
    f = msg.topic[1::].replace('/', '-')  + '.log'
    log = logging.getLogger()
    log.setLevel(logging.INFO)
    fh = logging.FileHandler(filename=f)
    fh.setLevel(logging.INFO)
    formatter = logging.Formatter(
                    fmt='%(message)s')
    fh.setFormatter(formatter)
    log.addHandler(fh)
    log.info(msg.payload)

1 Ответ

0 голосов
/ 07 мая 2020

Преобразования не происходит.

Полезные данные MQTT - это всегда просто массивы байтов, если вы хотите представить его в виде строки, вам необходимо декодировать ее с помощью подходящей кодировки символов ( обычно UTF-8)

Вы уже сделали это один раз с помощью функции str() в первой строке вашей функции, вам просто нужно сделать это снова в последней строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...