d = random,randint(1,30)
data = [d, strftime("%Y%m%d %H%M%S", gmtime())] #random num , system time
client.publish("gas", str(data)]
这是我的python代码的一部分,它是ver2。 我正在尝试使用MQTT发送列表。 但是,如果我写bytearray而不是str是第三行 它说“ValueError:string必须大小为1”。 所以我写了str然后把它变成sting类型 我可以发送一个非字符串类型的正确列表。
答案 0 :(得分:1)
MQTT消息有效负载只是字节数组,它们没有固有的格式。只要事务的两端使用相同的字符编码,字符串就会起作用。
如果您想发送结构化数据(例如ost),那么您需要决定对该结构进行编码的方式,以便接收该消息的代码将知道如何重构它。
目前这个问题的常用解决方案是编码结构是JSON,但XML或类似protobuffers的东西也是很好的候选者。
以下问题提供了将Python列表转换为JSON对象的一些示例