mqtt json数据打印

时间:2018-12-14 14:11:30

标签: python json mqtt

当我收到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"}

1 个答案:

答案 0 :(得分:0)

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

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

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