Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在';文件体';在Python API post请求中?_Python_Api_Post_Import_Sendinblue - Fatal编程技术网

如何在';文件体';在Python API post请求中?

如何在';文件体';在Python API post请求中?,python,api,post,import,sendinblue,Python,Api,Post,Import,Sendinblue,我正试图使用Python中的API将一个文件发布到sendinblue,并努力解决如何放置而不是“dataset1”的问题。如果我手动键入文件内容,但如果我指定了一个文件,它就会起作用-我尝试过csv、json、txt格式,但都不起作用。错误消息说“我们在您上传的文件中找不到任何有效的电子邮件或短信”,我认为它不喜欢“文件体”格式 我的代码如下: 非常感谢您的帮助 import requests url = "https://api.sendinblue.com/v3/contact

我正试图使用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)

这应该行得通。如果没有,你可以尝试一些解决方案

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(可公开访问),并让我知道它是否适合您

这回答了你的问题吗?非常感谢。在这段代码中,我应该在哪里指定标题(API键)?我添加了标题,@Irinaobraccovai现在已经尝试了这段代码,它给了我一个“响应[400]”…你需要用你的键替换
APIKEY
。你可以阅读这里的文档,我已经在代码中使用了我的API密钥。谢谢。您知道有没有办法在Python中将csv文件转换为原始URL链接?(无需通过Github手动执行)我认为您需要将csv文件保存在Github或任何其他云中,以便Sendinblue的服务器可以访问该文件。因此,您需要在请求中传递该文件的Url。一旦你的联系人被导入,你就可以删除该文件。是的,github的问题是我必须手动上传文件并转换,但我需要这是一个自动过程。我还尝试从OneDrive创建URL链接,但也不起作用。您计划多久导入一次联系人?如果您不打算经常导入,我建议您手动创建并上载该文件。但如果您需要经常这样做,您可以尝试使用AWSS3,这应该可以解决您的问题。您需要像现在这样创建csv,然后将其保存在S3上。然后,您可以将该url用于身体请求。