【发布时间】:2019-03-14 14:19:24
【问题描述】:
我必须向后端发送一个字符串请求。我有 2 个变量,我必须在请求的字符串中格式化它们。请求必须如下所示:
"{\"MachineType\":0,\"BrokenMachines\":6}"
我有 2 个变量,称为 type 和 count,我想将它们放入请求中(示例中的 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}'
我怎样才能让它工作?
【问题讨论】:
-
你没有尝试
'{\\"MachineType\\":1,\\"BrokenMachines\\":6}'或r'{\"MachineType\":1,\"BrokenMachines\":6}' -
另外,您似乎正在尝试输出 JSON。如果是这种情况,您应该使用 json 模块,而不是自己尝试这样做
-
'{\\"MachineType\\":1,\\"BrokenMachines\\":6}是正确的输出。您混淆了值的字符串表示形式。请尝试 打印 值。您的值中有单个反斜杠,但字符串表示(这是重现该值的有效 Python 语法)使用双反斜杠,因为单个反斜杠会导致 .... 您之前尝试的输出。
标签: python python-3.x python-requests escaping unicode-escapes