mqtt json数据打印

2024-10-03 04:30:19 发布

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

当我收到MQTT消息时,尝试打印一个温度值。目前的情况是,只打印完整的MQTT消息,而不打印值。”也不打印“测试”

代码:

import context
import paho.mqtt.client as mqtt
from influxdb import InfluxDBClient
import json

def on_message(mqttc, obj, msg):
    print(msg.payload)
    stuff = json_dumps(str(msg.payload))
    print(msg.payload['HTU21']['Temperature'])
    print ("Test")

输出:

{"Time":"2018-12-15T03:02:34","HTU21":{"Temperature":18.8,"Humidity":71.2},"TempUnit":"C"}

Tags: 代码importjson消息context情况msg温度
1条回答
网友
1楼 · 发布于 2024-10-03 04:30:19

它停止是因为当您尝试访问msg.payload(仍然是字符串)中的字段时,它抛出了一个错误(MQTT库正在捕获并隐藏错误)

如果您使用stuffjson对象,那么它应该可以工作

def on_message(mqttc, obj, msg):
    print(msg.payload)
    stuff = json_dumps(str(msg.payload))
    print(stuff['HTU21']['Temperature'])
    print ("Test")

相关问题 更多 >