在Python中为JSON转义双引号

72 投票
4 回答
178990 浏览
提问于 2025-04-16 17:36

我想知道在Python中,怎么把双引号替换成反斜杠加双引号?

>>> s = 'my string with "double quotes" blablabla'
>>> s.replace('"', '\\"')
'my string with \\"double quotes\\" blablabla'
>>> s.replace('"', '\\\"')
'my string with \\"double quotes\\" blablabla'

我希望得到这样的结果:

'my string with \"double quotes\" blablabla'

4 个回答

64

请注意,你可以通过将json数组或字典进行两次json.dumps和两次json.loads来进行转义:

>>> a = {'x':1}
>>> b = json.dumps(json.dumps(a))
>>> b
'"{\\"x\\": 1}"'
>>> json.loads(json.loads(b))
{u'x': 1}
141

你应该使用json模块。用json.dumps(string)这个方法。它还可以把其他的Python数据类型转换成字符串。

import json

>>> s = 'my string with "double quotes" blablabla'

>>> json.dumps(s)
<<< '"my string with \\"double quotes\\" blablabla"'
23
>>> s = 'my string with \\"double quotes\\" blablabla'
>>> s
'my string with \\"double quotes\\" blablabla'
>>> print s
my string with \"double quotes\" blablabla
>>> 
>>> s = """my string with "double quotes" blablabla"""
'my string with "double quotes" blablabla'
>>> print s.replace('"', '\\"')
my string with \"double quotes\" blablabla
>>> 

当你只请求's'时,它会自动处理掉反斜杠(\),所以当你打印出来的时候,你看到的字符串就像是更“原始”的状态。现在……

撰写回答