You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python嵌套字典替换异常:添加字典出现引号与转义符

解决字典嵌套替换时出现引号和转义符的问题

问题原因

你用json.dumps(raw_payload)把Python字典转换成了JSON格式的字符串,当把这个字符串赋值给current_dict["payload"]时,它会以字符串形式存储,所以显示时会带引号和转义符——这是字符串在Python中的正常表示方式。

解决方案

直接将原始字典raw_payload赋值给current_dict["payload"],不需要转成JSON字符串:

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": 0}}
# 直接赋值字典,跳过json.dumps步骤
current_dict["payload"] = raw_payload

print(current_dict)

执行后,current_dict的payload字段会是干净的嵌套字典:

{"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}}}

补充说明

如果后续需要把整个current_dict转换成JSON字符串用于传输或存储,再统一调用json.dumps(current_dict)即可,这样不会出现嵌套的字符串转义问题。

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:55:16