在Python中为JSON转义双引号
我想知道在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'时,它会自动处理掉反斜杠(\),所以当你打印出来的时候,你看到的字符串就像是更“原始”的状态。现在……