Unicode字符串到字节python 3

Unicode字符串到字节python 3,python,json,unicode,encoding,escaping,Python,Json,Unicode,Encoding,Escaping,我有一个Unicode字符串 my_string='SGtjPQ\\u003d\\u003d'和一本字典(2个反斜杠) 我需要以字节为单位提供json响应,因此我执行以下操作 response = json.dumps(data) return response.encode() 最终,一个公司会有这样的结果 b'{“键”:“SGtjPQ\\\\u003d\\\\u003d”}(4个反斜杠)。但我希望响应中的_字符串与原来完全一样(带有2个反斜杠)。如何防止这种自动转义并获取结果b'{“key

我有一个Unicode字符串 my_string='SGtjPQ\\u003d\\u003d'和一本字典(2个反斜杠)

我需要以字节为单位提供json响应,因此我执行以下操作

response = json.dumps(data)
return response.encode()
最终,一个公司会有这样的结果
b'{“键”:“SGtjPQ\\\\u003d\\\\u003d”}(4个反斜杠)。但我希望响应中的_字符串与原来完全一样(带有2个反斜杠)。如何防止这种自动转义并获取结果b'{“key”:“SGtjPQ\\u003d\\u003d”}

JSON字符串中的反斜杠是转义字符,本身需要转义<代码>“\\”在JSON中表示一个反斜杠。得到的四个反斜杠是表示两个反斜杠的正确JSON语法


如果您希望它有任何不同,您应该在JSON编码之前将字符串整理好。不要写转义的JSON文本语法,写下你想要的字符,让JSON为你正确编码

我不知道您为什么决定在python字符串中的代码u003d前面加两个反斜杠。使用数字代码指定unicode字符的语法只使用一个斜杠。像这样:
“SGtjPQ\u003d\u003d”

现在,回答您的问题,为什么在显示的字符串中有4个斜杠。反斜杠数量的膨胀是正常的:

my_string
内存中->仅一个斜杠

使用Python字符串语法表示my_字符串->两个反斜杠

data = {'key': my_string}
json中的
my_字符串的表示法->两个反斜杠

data = {'key': my_string}
my_string
->4个反斜杠的json表示(使用Python语法表示字符串)

data = {'key': my_string}

因此,在最终结果中有4个反斜杠,因为斜杠首先通过JSON编码转义,然后,两个结果斜杠通过python解释器的显示转义,该解释器使用字符串的python语法显示字符串。

您打算如何处理u00前面的这两个反斜杠?unicode字符的正常语法只使用一个斜杠。那么,你想让JSON结果表示字符串“SGtjPQ\u003d\u003d”—这种行为在现实生活中是不必要的,但如果你仍然需要实现这个结果,你可以做
response.replace(b'\\\\',b'\\\')
来显式替换斜杠。