防止mqtt消息有效负载的base64转换

时间:2020-05-07 06:20:56

标签: python-3.x mqtt

有没有一种方法可以阻止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 :(得分:0)

没有任何转换。

MQTT负载总是 字节数组,如果要以字符串形式显示,则需要使用合适的字符编码(通常为UTF-8)对其进行解码

您已经使用函数第一行中的str()函数执行了一次此操作,您只需要在最后一行中再次执行此操作即可。