import requests
url = "https://open.feishu.cn/open-apis/drive/v1/files/upload_all"
payload = {'parent_type': 'explorer',
'parent_nade': 'fldcnwvSWiepfDHiuoAl7AoEQFd',
'file_name': 'Data.xlsx',
'size': '25088'}
files = [
('file', ('Data.xls', open('C:/Scripts/Data.xls', 'rb'), 'application/vnd.ms-excel'))
]
headers = {
'Authorization': 'Bearer u-311OyPxWzNR6EirFakNSab',
'Content-Type': 'multipart/form-data; boundary="foo123"'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
本地Python3.7.7
自己尝试过解决,但估计是关于file这边的用法,涉及到盲区。
报错提示参数错误,看你代码上excel文件扩展名不一致
表单的结构是一个KV结构,所以通过表单发送文件是也需要构造一个字典
- field_name: file
其中field_name应该与表单中input元素的name一致: photo
file则有多种写法:
- fileobj
- ('file_name', 'file_content')
- ('filename', 'fileobj', 'content_type' )
之所以有这样的写法差异,是因为通过fileobj,可以自动的获取名字、内容、类型等信息
其他的写法是提供了对部分信息 “自定义”的能力
来源:测试开发研习社 - requests基本用法- 文件上传
此外payload 和Content-Type也不需要进行传递,会自动构建
参考代码
import requests
url = "https://open.feishu.cn/open-apis/drive/v1/files/upload_all"
files = {"file": open(r"C:/Scripts/Data.xls", "rb")}
headers = {
'Authorization': 'Bearer u-311OyPxWzNR6EirFakNSab', # 注意t更新token
}
response = requests.request("POST", url, headers=headers, files=files)
print(response.text)
如有帮助 ,还请采纳,欢迎追问和交流~
还是东看西看乱找乱试,最后如下截图成功