如何解决在mqtt json字符串中添加“”
我有一个将mqtt发送到mqtt代理的python脚本。我使用paho mqtt。
脚本:
data = 25.5
self.mqtt_client.publish("domoticz/in",payload=json.dumps({"idx" : 26,"nvalue" : 0,"svalue" : data}),qos=0,retain=False)
我的经纪人希望将数据中的值设置为“ 25.5”这样的格式,如何在JSON字符串中添加“”?
解决方法
数据的格式不是«“ 25.5”»,而是 string 。使用str()
将数字转换为字符串。
data = 25.5
message = {"idx": 26,"nvalue": 0,"svalue": str(data)}
self.mqtt_client.publish("domoticz/in",payload=json.dumps(message),qos=0,retain=False)
,
使用反斜杠转义JSON中的字符:
>>> json.dumps({"idx" : 26,"nvalue" : 0,"svalue" : [1,2,3],"formatted_number": '\"25.5\"'})
'{"idx": 26,"svalue": [1,"formatted_number": "\\"25.5\\""}'
>>> print(json.dumps({"idx" : 26,"formatted_number": '\"25.5\"'}))
{"idx": 26,"formatted_number": "\"25.5\""}
由于Python还将\
视为escape character,因此它在第一行输出中增加了一倍,但在第二行中没有。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。