这个python3代码返回一个错误:
import json
import requests
# Perform a Single Send
headers = {
"authorization": "Bearer <my-API-key>",
"content-type": "application/json"
}
data = {
"name": "Test Blast",
"send_to": {
"segment_ids": ["<a-segment-id>"],
"all": False
},
"email_config": {
"subject": "Test Blast",
"html_content": "<h1>My Message</h1><p>Is a very simple one.</p>",
"generate_plain_content": True
}
}
url = "https://api.sendgrid.com/v3/marketing/singlesends"
res = requests.post(url, headers=headers, data=json.dumps(payload))
print((res.status_code, res.text))
响应是
(400, '{"errors":[{"field":"name","message":"cannot be empty string"}]}')
这并不过分信息量。 运行相同的数据(python布尔值更改为true/false(,并在 https://sendgrid.com/docs/api-reference/上使用"试用"界面 给出的错误响应为
{
"errors": [
{
"field": "",
"message": "json could not be unmarshalled"
}
]
有什么线索可以知道出了什么问题,或者缺少什么吗?
此行存在问题:
res = requests.post(url, headers=headers, data=json.dumps(payload))
您将在请求中传递空有效负载变量。您已将 json 分配给数据变量并传递有效负载。
因此,您需要将变量有效负载更改为此行中的数据。之后它将起作用。
res = requests.post(url, headers=headers, data=json.dumps(data))