• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python实现requests发送/上传多个文件的示例

python 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

这篇文章主要介绍了关于python实现requests发送/上传多个文件的示例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

1、需要的环境

Python2.X
Requests 库

2、单字段发送单个文件

在requests中发送文件的接口只有一种,那就是使用requests.post的files参数, 请求形式如下:

url = "http://httpbin.org/post" data = None files = { ... } r = requests.post(url, data, files=files)

而这个files参数是可以接受很多种形式的数据,最基本的2种形式为:

字典类型

元组列表类型

2.1、字典类型的files参数

官方推荐使用的字典参数格式如下:

{  "field1" : ("filename1", open("filePath1", "rb")),  "field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"),  "field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}) }

这个字典的key就是发送post请求时的字段名, 而字典的value则描述了准备发送的文件的信息;从上面可以看出value可以是2元组,3元组或4元组;

这个元组的每一个字段代表的意思一次为:

("filename", "fileobject", "content-type", "headers")

缺省的话则会使用默认值

除了上面的使用形式,其实requests还是支持一个更简洁的参数形式,如下

{  "field1" : open("filePath1", "rb")),  "field2" : open("filePath2", "rb")),  "field3" : open("filePath3", "rb")) }

这种形式的参数其等同效果如下, 其中filename是filepath的文件名:

{  "field1" : ("filename1", open("filePath1", "rb")),  "field2" : ("filename2", open("filePath2", "rb")),  "field3" : ("filename3", open("filePath3", "rb")) }

当然,你还可以这样发送一个文件请求

{  "field1" : open("filePath1", "rb").read()) }

这里的filename的值为field1

2.2、元组列表类型的files参数

其实元组列表的形式与字典的形式基本一样,除了最外层的包装不一样;而在requests内部最终会把字典参数形式 转换 为 元组列的形式。官网推荐的用法如下:

[  ("field1" : ("fi<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark>lename1", open("filePath1", "rb"))),  ["field2" : ("filename2", open("filePath2", "rb"), "image/jpeg")],  ("field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"})) ]

列表里面的子项可以是元组,也可以是列表;同样这里也支持简介的形式,如下:

[  ("field1" : open("filePath1", "rb"))), ##filename 使用的是filepath的文件名  ("field2" : open("filePath2", "rb").read())) ##filename 使用的是键值,即 field2 ]

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python实现requests发送/上传多个文件的示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址