Python - 字符串格式化将转义字符转换为文字

Python - String formatting convert escaped characters to literals

我必须向后端发送一个字符串请求。我有 2 个变量,我必须在请求的字符串中格式化它们。请求必须如下所示:

"{\"MachineType\":0,\"BrokenMachines\":6}"

我有 2 个名为 typecount 的变量,我想将它们放入请求中(示例中的 0 为 type,6 为 count).我已经尝试了几乎所有我知道的方法,但我仍然无法获得带有转义字符的字符串,python 将它们转换为文字。这些是我尝试过的一些解决方案:

尝试:

("{\"MachineType\":" + str(type) + ",\"BrokenMachines\":" + str(count) + "}").encode('unicode_escape').decode('ASCII')

结果:

'{"MachineType":1,"BrokenMachines":6}'

尝试:

'{{\"MachineType\":{},\"BrokenMachines\":{}}}'.format(type, count).encode('unicode_escape').decode('ASCII')

结果:

'{"MachineType":1,"BrokenMachines":6}'

尝试:

"{{\\"MachineType\\":{},\\"BrokenMachines\\":{}}}".format(type, count)

结果:

'{\"MachineType\":1,\"BrokenMachines\":6}'

我怎样才能让它发挥作用?

您可以使用单引号或双引号来表示字符串,因此如果您的字符串需要包含一个,则使用另一个。您也可以使用 r 字符串来转义所有特殊字符。

r'"{\"MachineType\":0,\"BrokenMachines\":6}"'