在Python中将字典转换为json时,我需要转义双引号,但我一直在努力寻找方法。
因此,如果我有一个像{'foo': 'bar'}
这样的字典,我想将其转换为json并转义双引号-这样看起来像:
'{\"foo\":\"bar\"}'
json.dumps
不会执行此操作,而我已经尝试过类似的操作:
json.dumps({'foo': 'bar'}).replace('"', '\\"')
的格式如下:
'{\\"foo\\": \\"bar\\"}'
这似乎是一个很简单的问题,但我真的很努力。
答案 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\\"}'