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