Python替换字典中的嵌套字典



我想在字典中替换字典,但是当我尝试时,我总是在添加的字典周围获得引号和斜杠。

current_dict = {"header": {"from": "/app/off_grid_control/subscribe",
"messageId": "ef6b8e50620ac768569f1f7abc6507a5", "method": "SET",
"namespace": "Appliance.Control.ToggleX", "payloadVersion": 1,
"sign": "e48c24e510044d7e2d248c68ff2c10ca", "timestamp": 1601908439,
"triggerSrc": "Android"}, "payload": {"togglex": {"channel": 0, "onoff": 1}}}
raw_payload = {"togglex": {"channel": 0, "onoff": 1}}
payload = json.dumps(raw_payload)

从print语句中得到:

payload = {"togglex": {"channel": 0, "onoff": 0}}

看起来不错。

然后我尝试将新字典部分添加到原始字典中:

current_dict["payload"] = payload

得到这个:

current_dict = {"header": {"from": "/app/off_grid_control/subscribe",
"messageId": "ef6b8e50620ac768569f1f7abc6507a5", "method": "SET",
"namespace": "Appliance.Control.ToggleX", "payloadVersion": 1,
"sign": "e48c24e510044d7e2d248c68ff2c10ca", "timestamp": 1601908439,
"triggerSrc": "Android"}, "payload": "{"togglex": {"channel": 0, "onoff": 0}}"}

注意负载值周围所有添加的"。有人能帮我们添加一个不同的字典到"有效负载"吗?干净吗?

当你这样做的时候:

payload = json.dumps(raw_payload)

你正在将你的字典转换成一个json字符串,它看起来就像一个字典。如果您想将其作为python对象添加到外部字典中,则需要这样做:

current_dict["payload"] = json.loads(payload)

最新更新