如何使用MQTT发送列表

时间:2016-07-25 11:05:53

标签: python-2.7 mqtt raspberry-pi2

   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类型 我可以发送一个非字符串类型的正确列表。

1 个答案:

答案 0 :(得分:1)

MQTT消息有效负载只是字节数组,它们没有固有的格式。只要事务的两端使用相同的字符编码,字符串就会起​​作用。

如果您想发送结构化数据(例如ost),那么您需要决定对该结构进行编码的方式,以便接收该消息的代码将知道如何重构它。

目前这个问题的常用解决方案是编码结构是JSON,但XML或类似protobuffers的东西也是很好的候选者。

以下问题提供了将Python列表转换为JSON对象的一些示例

Serializing list to JSON