有没有一种方法可以阻止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)
答案 0 :(得分:0)
没有任何转换。
MQTT负载总是 字节数组,如果要以字符串形式显示,则需要使用合适的字符编码(通常为UTF-8)对其进行解码
您已经使用函数第一行中的str()
函数执行了一次此操作,您只需要在最后一行中再次执行此操作即可。