如何在 Python API 请求后的'filebody'中指定文件?



我正试图使用Python中的API将一个文件发布到sendinblue,并且正在努力放置什么而不是";数据集1";。如果我手动键入文件内容,但如果我指定了一个文件,它就可以工作——我尝试过csv、json、txt格式,但都不起作用。错误消息说"我们在你上传的文件中找不到任何有效的电子邮件或短信",我认为它不喜欢"filebody"格式。

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

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)

这应该可以工作。如果没有,你可以尝试其中的一些解决方案。

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)

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

相关内容

  • 没有找到相关文章

最新更新