在Python中将字典转换为json时转义双引号

时间:2018-07-24 17:04:40

标签: python json

在Python中将字典转换为json时,我需要转义双引号,但我一直在努力寻找方法。

因此,如果我有一个像{'foo': 'bar'}这样的字典,我想将其转换为json并转义双引号-这样看起来像:

'{\"foo\":\"bar\"}'

json.dumps不会执行此操作,而我已经尝试过类似的操作:

json.dumps({'foo': 'bar'}).replace('"', '\\"')的格式如下:

'{\\"foo\\": \\"bar\\"}'

这似乎是一个很简单的问题,但我真的很努力。

2 个答案:

答案 0 :(得分:2)

您上一次尝试json.dumps({'foo': 'bar'}).replace('"', '\\"')确实符合您的期望。

看到这个的原因:

'{\\"foo\\": \\"bar\\"}'

是因为要打印字符串的表示形式。字符串本身每个引号都只有一个反斜杠。如果对该结果使用print(),则会看到一个反斜杠

答案 1 :(得分:0)

您所拥有的有效。 Python向您展示了它的字面表示。如果将其保存到变量中并打印出来,它将显示您要查找的内容。

>>> a = json.dumps({'foo': 'bar'}).replace('"', '\\"')
>>> print a
{\"foo\": \"bar\"}
>>> a
'{\\"foo\\": \\"bar\\"}'