给定输入:
{"fruit": "apple"}
我需要生成输出:
{"Message":{\"fruit\": \"apple\"}}
最好不要通过字符串替换来运行它,因为文本可能有引号。
这是我的示例代码:
>>> import json
>>>
>>> input={}
>>> input["fruit"]="apple"
>>> print(json.dumps(input))
{"fruit": "apple"}
>>> print(json.dumps(json.dumps(input)))
"{\"fruit\": \"apple\"}" # this looks right
>>>
>>> output={}
>>> output["Message"]=json.dumps(json.dumps(input))
>>> print(output)
{'Message': '"{\\"fruit\\": \\"apple\\"}"'} # unexpected
我希望双 json.dumps 的打印输出将设置为输出的消息字段,但它添加了额外的转义。
所以我尝试了这个:
>>> output["Message"]=json.dumps(input)
>>> print(output)
{'Message': '{"fruit": "apple"}'}
但它没有我正在寻找的单一转义。尝试“字符串化”此 json 时,我如何捕获单个转义符?
如果您尝试创建一个 JSON 字符串,其中一个属性的值是转义的 JSON 字符串,您只需从第一个字典创建 JSON 并将其分配给“外部”字典的属性,然后从中创建 JSON:
import json
d = {
"Message": json.dumps( {"fruit": "apple"} )
}
print(json.dumps(d))
输出:
{"Message": "{\"fruit\": \"apple\"}"}
请注意,您无法生成所需的输出,{"Message":{\"fruit\": \"apple\"}}
因为这不是有效的 JSON。
顺便说一句,您不要“将 JSON 转换为字符串”,因为根据定义,JSON 已经是一个字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句