data = '''{"text": "\"abc\""}'''
print(data) # {"text": ""abc""}
从结果可以看到并没有出现反斜杠,反斜杠与双引号作为一个整体,转义为了一个双引号,如果要在字符串中出现反斜杠,需要如下:
data = '''{"text": "\\"abc\\""}'''
print(data) # {"text": "\"abc\""}
测试发现data = '''{"text": "\"abc\""}'''
与data = '''{"text": ""abc""}'''
打印的结果相同
data = '''{"text": ""abc""}'''
print(data) # {"text": ""abc""}
python字符串中的\被当作转义字符串,在字符串前面加r,字符串中所有字符是原始字符,没有转义,比如。
a = r'\b'
Q:请你总结下反斜杠在普通字符串与json字符串之间转换的规则,尽量精简且容易理解
A: 当然,我很乐意为你总结这个规则。
普通字符串转 JSON 字符串:
\
被转义为 \\
。\n
被转义为 \\n
。JSON 字符串转普通字符串:
\\
被解析为 \
。\\n
被解析为 \n
。\n
被解析为实际的换行。记住,JSON 字符串总是用双引号包围,而且在 JSON 中,反斜杠 \
是用来转义特殊字符的。这就是为什么在 JSON 中,你需要用 \\
来表示一个字面上的反斜杠 \
,用 \\n
来表示一个字面上的 \n
,而 \n
代表的是一个实际的换行。