簡體   English   中英

將 "" 添加到 mqtt json 字符串

[英]Add "" to mqtt json string

我有一個將 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"» ,數據是一個字符串 使用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, "nvalue": 0, "svalue": [1, 2, 3], "formatted_number": "\\"25.5\\""}'
>>> print(json.dumps({"idx" : 26, "nvalue" : 0, "svalue" : [1, 2, 3], "formatted_number": '\"25.5\"'}))
{"idx": 26, "nvalue": 0, "svalue": [1, 2, 3], "formatted_number": "\"25.5\""}

由於 Python 也將\\視為轉義字符,因此它在第一個輸出行中翻倍,但在第二個輸出行中沒有翻倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM