Python MQTT订阅获取发布信息字典过滤
时间: 2023-12-14 10:36:12 浏览: 120
MQTT订阅发布
要订阅和过滤 MQTT 消息,可以使用 Python 中的 paho-mqtt 库。该库提供了订阅和发布 MQTT 消息的功能。
首先,使用以下代码导入 paho-mqtt 库:
```
import paho.mqtt.client as mqtt
```
接下来,创建一个 MQTT 客户端并连接到 MQTT 代理:
```
client = mqtt.Client()
client.connect("mqtt.broker.com", 1883)
```
在连接成功后,可以使用以下代码订阅一个主题,例如 "mytopic":
```
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
client.on_message = on_message
client.subscribe("mytopic")
```
在接收到消息时,将调用 on_message 回调函数,并将消息对象作为参数传递。在此示例中,我们只是简单地打印出主题和消息负载。
如果要过滤特定的消息,可以在 on_message 函数中添加条件。例如,以下代码只会打印主题为 "mytopic" 并且负载包含 "hello" 的消息:
```
def on_message(client, userdata, msg):
if msg.topic == "mytopic" and "hello" in str(msg.payload):
print(msg.topic+" "+str(msg.payload))
```
这样,只有当消息符合条件时,才会执行打印操作。
最后,要开始接收 MQTT 消息,可以使用以下代码:
```
client.loop_forever()
```
这将使客户端保持连接,并在接收到新消息时调用 on_message 回调函数。
阅读全文