0

我正在尝试使用 Python 中的 API 将文件发布到 sendinblue,并努力解决放置什么而不是“dataset1”的问题。如果我手动输入文件内容,但如果我指定一个文件,它就可以工作 - 我尝试了 csv、json、txt 格式,但没有任何效果。错误消息说“我们在您上传的文件中找不到任何有效的电子邮件或短信”,我认为它不喜欢“文件正文”格式。

我的代码如下:非常感谢任何帮助!

import requests

url = "https://api.sendinblue.com/v3/contacts/import"

payload = {
    "listIds": [12],
    "emailBlacklist": False,
    "smsBlacklist": False,
    "updateExistingContacts": True,
    "emptyContactsAttributes": False,
    "fileBody": "dataset1"

headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "APIKEY"
}

response = requests.request("POST", url, json=payload, headers=headers)


        
print(response.text)
4

2 回答 2

0

我认为你想要的是fileUrl而不是fileBody可以从这里引用。您提到如果您手动键入内容,那么它工作正常。因此,请尝试fileUrl在请求中使用 url(可公开访问)作为参数,并让我知道它是否适合您!

于 2020-10-06T17:30:10.543 回答
0

这应该有效。如果没有,您可以尝试其中一些解决方案。

files = {'upload_file': open('file.txt','rb')}
url = "https://api.sendinblue.com/v3/contacts/import"
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "api-key": "APIKEY"
}
response = requests.request("POST", url, files=files, headers=headers)
于 2020-10-02T15:09:44.263 回答