Can';由于反斜杠转义,无法使JavaScript和Python字符串相同

Can';由于反斜杠转义,无法使JavaScript和Python字符串相同,javascript,python,python-requests,Javascript,Python,Python Requests,我正在尝试让一个POST web请求现在可以工作24小时。但是有什么东西弄乱了我的身体。我必须在Python程序中调用JavaScript函数(以运行我试图请求的webiste使用的加密函数),但JavaScript处理的字符串与JavaScript返回的字符串不同(使用js2py库在Python中执行JavaScript) 我有一个像这样的物体: let enc = { data: { "endpointId": 17273, pa

我正在尝试让一个POST web请求现在可以工作24小时。但是有什么东西弄乱了我的身体。我必须在Python程序中调用JavaScript函数(以运行我试图请求的webiste使用的加密函数),但JavaScript处理的字符串与JavaScript返回的字符串不同(使用js2py库在Python中执行JavaScript)

我有一个像这样的物体:

let enc = {
    data: {
        "endpointId": 17273,
         params: {
            "DEBUG_": false,
            "userId": String(userId),
            "userIsOnline": true,
            "lang": "en",
            "locale": "en#US"
    }
}
POST请求的最终主体必须如下所示(与此完全相同,因为在服务器端,数据将使用与我在JavaScript函数中使用的相同密钥进行解密):

我不知道如何只放一个反斜杠(比如“DEBUG_”),我尝试的所有东西都是两个或三个反斜杠(而且反斜杠应该只在params对象内,而不是在appId处)

另一个问题是,如果我将字符串返回到python控制台,则log(n.data)与return n.data不匹配:

console.log("Encrypting: " + n.data);
> Encrypting: {"endpointId":17273,"params":"{\\"DEBUG_\\":false,\\...
(正如您在这里看到的两个反斜杠!)

JavaScript:

return  n.data
Python:

body = js2py.eval_js(Constants.sign_function + f"make('{input}');");
print(f"#  Returned: {body}")
现在的问题是,如果我发送带有返回正文的web请求,如:

req = requests.post(url, data=body, headers=headers)
响应将被403禁止,因为发送的数据不是加密数据(因为两者在字符串中的反斜杠不同)


到目前为止,我尝试了很多方法(从字符串构建主体,从dict构建主体,在JavaScript中构建主体,在Python中构建主体…),但都无法实现。反斜杠最终总是会扼杀我的努力。

是JSON编码吗?//小心你在比较什么。显示表单的反斜杠总是比实际字符串内容多。您能显示一个反斜杠吗?您在哪里定义了
make(
Returned: {"endpointId":17273,"params":"{\"DEBUG_\":false,\\..
req = requests.post(url, data=body, headers=headers)