使用python请求模块上载文件

使用python请求模块上载文件,python,python-requests,Python,Python Requests,我正在尝试使用python请求模块上传一个文件,我不确定我们是否可以在post调用中同时使用数据和文件 fileobj= open(filename,'rb') upload_data = { 'data':payload, 'file':fileobj } resp = s.post(upload_url,data=upload_data,headers=upload_headers) 这是行不通的。有人能帮我吗?我想你应该在post请求中使用数据和文件关键字参数来分别发送

我正在尝试使用python请求模块上传一个文件,我不确定我们是否可以在post调用中同时使用数据和文件

fileobj= open(filename,'rb')
upload_data = {
    'data':payload,
    'file':fileobj
}

resp = s.post(upload_url,data=upload_data,headers=upload_headers)

这是行不通的。有人能帮我吗?

我想你应该在post请求中使用
数据
文件
关键字参数来分别发送数据和文件

with open(filename,'rb') as fileobj:
    files = {'file': fileobj}
    resp = s.post(upload_url,data=payload,files=files,headers=upload_headers)

我还使用了上下文管理器,只是因为它为我关闭了文件,并处理了在文件打开期间或在请求发布期间发生的异常

你知道什么是上下文管理器吗?看看是哪一个引入了带有语句的
,我试过了,但不管用。还有人能帮我吗?@pvg:这也是我的问题之一。