requests一次上传多个文件

一般情况下是一次上传一个文件,今天遇到了一个要一次性上传多个文件的接口,记录一下我的做法。


使用了requests库

安装

pip install requests

接口文档

由于接口文档大概是这样的:
POST: host/api/upload
Headers: {
Auth: token
}
request body: {
workspace: {
"workspace_name": workspace_name
"workspace_permission": workspace_permission
},
file: [file1, file2, file3...]
}

使用方法

先说明这段伪代码,看了你应该就知道怎么用了。

import requests

url = "host/api/upload"
headers = {
    "Auth": token
}

data = {
    "workspace": {
        "workspace_name": "workspace1",
        "workspace_permission": "1"
    },
    file: (
        ('filename1', open(filepath1, 'rb')),
        ('filename2', open(filepath2, 'rb')),
        ('filename3', open(filepath3, 'rb')),
    )
}

response = requests.post(url, headers=headers, files=data)
print(response.status_code, response.content)

本来我们应用使用requests.post()的data参数的,这里我们使用了files参数。
requests的官方文档中虽然没有说如何上传多个文件,但是说了同一个key的value是可以合并的。


image.png

requests中文文档地址:http://2.python-requests.org/zh_CN/latest/user/quickstart.html

所以,我们给file传递的是一个元祖,而非列表。

你可能感兴趣的:(requests一次上传多个文件)