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

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

1、需要的环境

Python2.X
Requests

2、单字段发送单个文件

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

立即学习“Python免费学习笔记(深入)”;

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" : ("filename1", 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 ]

登录后复制

3、单字段发送多个文件【即上传文件时,设置为多选了】

3.1、字典参数形式

{  "field1" : [      ("filename1", open("filePath1", "rb")),      ("filename2", open("filePath2", "rb"), "image/png"),      open("filePath3", "rb"),      open("filePath4", "rb").read()     ] }

登录后复制

3.2、元组列表形式

[  ("field1" , ("filename1", open("filePath1", "rb"))),  ("field1" , ("filename2", open("filePath2", "rb"), "image/png")),  ("field1" , open("filePath3", "rb")),  ("field1" , open("filePath4", "rb").read()) ]

登录后复制

上面2种形式发送的请求,所有的文件都会在同一个字段下,后台服务只要从field1字段就可以获取全部的文件对象

4、同时发送普通数据字段

上面介绍的是使用发送文件内容请求,而有时候我们在发送文件的同时还需要发送普通的数据字段,此时普通数据字段直接存在data参数中即可,如下:

data = {"k1" : "v1"} files = {  "field1" : open("1.png", "rb") } r = requests.post("http://httpbin.org/post", data, files=files)

登录后复制

相关推荐:

python实现超简单的视频对象提取功能

Python实现ping指定IP的示例

以上就是python实现requests发送/上传多个文件的示例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2262162.html

(0)
上一篇 2025年2月27日 06:44:50
下一篇 2025年2月24日 04:44:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python操作mongodb的9个步骤

    本篇文章给大家详细分享了python操作mongodb的详细步骤以及实例代码,有需要的朋友参考学习下吧。 一 导入 pymongo from pymongo import MongoClient 登录后复制 二 连接服务器 端口号 2701…

    编程技术 2025年2月27日
    200
  • Python装饰器的执行过程实例分析

    这篇文章主要介绍了python装饰器的执行过程,结合实例形式分析了python装饰器的原理、执行过程及相关操作注意事项,需要的朋友可以参考下 本文实例分析了Python装饰器的执行过程。分享给大家供大家参考,具体如下: 今天看到一句话:装饰…

    编程技术 2025年2月27日
    200
  • 使用Python监控文件内容变化代码

    这篇文章主要介绍了关于使用python监控文件内容变化代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在python中文件监控主要有两个库,一个是pyinotify,一个是watchdog。pyinotify依赖于Lin…

    编程技术 2025年2月27日
    200
  • 使用Python快速搭建HTTP服务和文件共享服务

    这篇文章主要介绍了关于使用python快速搭建http服务和文件共享服务,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 SimpleHTTPServer SimpleHTTPServer是Python自带的一个HTTP服务类…

    2025年2月27日
    200
  • python topN 取最大的N个数或最小的N个数方法

    这篇文章主要介绍了关于python topn 取最大的n个数或最小的n个数方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 如下所示: import numpy as npa = np.array([1,4,3,5,2])…

    编程技术 2025年2月27日
    200
  • python验证码识别教程之利用投影法、连通域法分割图片

    这篇文章主要介绍了关于python验证码识别教程之利用投影法、连通域法分割图片,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 今天这篇文章主要记录一下如何切分验证码,用到的主要库就是Pillow和Linux下的图像处理…

    2025年2月27日
    200
  • Python中property函数的用法

    这篇文章主要介绍了python中property函数用法,结合实例形式分析了property函数的功能、参数、使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python中property函数用法。分享给大家供大家参考,具体…

    编程技术 2025年2月27日
    200
  • python最长回文串算法

    这篇文章主要为大家详细介绍了python最长回文串算法的实践,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 给定一个字符串,要求在这个字符串中找到符合回文性质的最长子串。所谓回文性是指诸如 “aba”,”ababa&#822…

    编程技术 2025年2月27日
    200
  • python学习必备知识汇总

    这篇文章主要介绍了python学习必备知识汇总的相关资料,需要的朋友可以参考下 一、变量1.变量•指在程序执行过程中,可变的量;•定义一个变量,就会伴随有3个特征,分别是内存ID、数据类型和变量值。•其他语言运行完之前,一定要手动把程序的内…

    编程技术 2025年2月27日
    200
  • 如何用python整理附件

    本篇文章给大家整理了关于如何用python整理附件的相关知识点,学习python的朋友可以跟着测试下。 目前我的文件夹中有500多份简历,如果我想知道一些信息,比如学校,学历之类的,我需要打开每一份word去查看,太耗时间了。这个时候pyt…

    2025年2月27日
    200

发表回复

登录后才能评论