使用python请求模块上传文件

时间:2015-12-23 18:26:24

标签: python python-requests

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

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

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

这不起作用。所以有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

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

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

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