如何将 JSON 转换为字符串?

蒂贝兹

给定输入:

{"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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章