如何从mqtt主题和负载生成dict结构

2024-09-30 20:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从mqtt主题和负载生成python dict

如果我收到这个有效载荷:85

来自本主题:数据/nb200s/05010027/cm

我想将其添加或更新到python dict中,如下所示:

pythonDict={}

pythonDict[“数据”][“nb200s”][“05010027”][“厘米”]=85

有什么好办法吗

太多了

以下是我现在拥有的,但它根本不起作用:

m_decode = ""
        try:
            m_decode = msg.payload.decode("utf-8", "ignore")
        except Exception as e:
            m_decode = msg.payload
        topics = msg.topic.split("/")
        dataStr = cache.get("mqttJson")
        if dataStr:
            data = json.loads(dataStr)
        else:
            data = dict()
        tLen = len(topics)
        if tLen == 1:
            data[topics[0]] = m_decode
        elif tLen == 2:
            data[topics[0]][topics[1]] = m_decode
        elif tLen == 3:
            data[topics[0]][topics[1]][topics[2]] = m_decode
        elif tLen == 4:
            data[topics[0]][topics[1]][topics[2]][topics[3]] = m_decode
        elif tLen == 5:
            data[topics[0]][topics[1]][topics[2]][topics[3]][topics[4]] = m_decode
        else:
            return
        cache.set(json.dumps(data, sort_keys=True))

Tags: 数据cache主题dataifmsgdictpayload