Python MQTT订阅获取发布信息字典过滤

  • 起因是因为 订阅的时候,获取到的 MQTT 信息时,第一条信息好像是连接信息,所以需要过滤他。

  • 接收到的数据如下

  • 必须要过滤这个 name : 1 的字典,操作如下:

    def on_message(client, userdata, msg):
        print(msg.topic+" " + ":" + str(msg.payload))
        print(type(msg.payload))
        print(json.loads(msg.payload.decode('utf8')))
        print(type(json.loads(msg.payload.decode('utf8'))))
        js_code = json.loads(msg.payload.decode('utf8'))
        print(js_code);

        if "name" in js_code :
            print(js_code["name"]);
        elif "gateway_id" in js_code :
            print(js_code["gateway_id"]);
            print(js_code["funcode"]);
            print(js_code["device_id"]);
            print(js_code["value"]);
        else :
            print("dict error");
  • 在 Python3 里面,已经没有 dict.has_key 的操作,判断里面是否有这个 key ,所以只能用 if "name" in js_code 的方法

原文地址:https://www.cnblogs.com/chenfulin5/p/8888902.html