Python 请求负载格式

Sha*_*boz 1 python

我正在使用 requests 库处理 POST 请求。

如果我在有效负载中使用回车符,我的帖子请求工作正常,如下所示:

payload = "{\r\n        \"name\": \r\n        {\r\n            \"@action\": \"login\",\r\n            \"@appname\": \"app\",\r\n            \"@class\": \"login\",\r\n            \"@nocookie\": 1,\r\n            \"@code\": \"101\",\r\n            \"@psw\": \"12345\",\r\n            \"@relogin\": \"0\",\r\n            \"@username\": \"user123\"\r\n        }\r\n}\r\n"
Run Code Online (Sandbox Code Playgroud)

但是,如果我对其进行格式化以使有效负载看起来很漂亮,则请求将不起作用:

payload = { 
    'name': 
        { 
            '@action': "login", 
            '@appname': "app", 
            '@class': "login", 
            'nocookie': 1, 
            '@code': "101", 
            'psw': "12345", 
            '@relogin': "0", 
            '@username': "user123" 
        } 
} 
Run Code Online (Sandbox Code Playgroud)

我使用第二个有效负载时收到 500 错误。第一个有效负载按预期工作。有任何想法吗?

Daw*_*žan 6

最有可能的是,您只需要首先使用该函数json.dumps从您的结构创建一个 JSON 字符串:

data = json.dumps(payload)
Run Code Online (Sandbox Code Playgroud)

然后使用该data变量代替原来的payload.