有没有办法使用 python 请求发送多部分/表单数据数组?

2024-04-10

假设有一个端点接受HTTP请求与multipart/form-data内容类型。以下是可接受的请求正文的示例。

----------------------------033392576939750140334380
Content-Disposition: form-data; name="file" filename="dummy_file.txt"
Some dummy file here.
----------------------------033392576939750140334380
Content-Disposition: form-data; name="years"
2019
----------------------------033392576939750140334380
Content-Disposition: form-data; name="years"
2020
----------------------------033392576939750140334380

正如您所看到的,有一组数字正在使用years关键词。

问题是我们如何使用发送相同的请求requests图书馆在python? 因此这似乎很棘手years array.

我尝试过通过这些方式发送。

requests.post(
        "http://some.site/some-endpoint/",
        files={
            "years": [2019, 2020],
            "file": ("dummy_file.txt", open("dummy_file.txt", "rb")),
        },
    )

不去上班——TypeError: a bytes-like object is required, not 'list'.


requests.post(
        "http://some.site/some-endpoint/",
        files={
            "years": (None, "2019, 2020"),
            "file": ("dummy_file.txt", open("dummy_file.txt", "rb")),
        },
    )

给出以下请求正文。

--88c0aa2588fb3ca9b1e3c9c6cf625677
Content-Disposition: form-data; name="years"
2019, 2020
--88c0aa2588fb3ca9b1e3c9c6cf625677
Content-Disposition: form-data; name="file"; filename="dummy_file.txt"
Some dummy file here.
--88c0aa2588fb3ca9b1e3c9c6cf625677--

The years数组在这里表示为字符串值,这对于这种情况是不行的。


requests.post(
        "http://some.site/some-endpoint/",
        files={
            "years[0]": (None, "2020"),
            "years[1]": (None, "2019"),
            "file": ("dummy_file.txt", open("dummy_file.txt", "rb")),
        },
    )

给出以下请求正文。

--989f55fc01395402654f4275d11e8735
Content-Disposition: form-data; name="years[0]"
2020
--989f55fc01395402654f4275d11e8735
Content-Disposition: form-data; name="years[1]"
2019
Content-Disposition: form-data; name="file"; filename="dummy_file.txt"
Some dummy file here.
--989f55fc01395402654f4275d11e8735

这样中的每个元素years数组由不同的表示name,这也不适合这种特殊情况。


如果我们检查最后一次尝试,似乎我们可以通过发送每个值来实现所需的主体结构years使用相同的数组years关键词。但这是行不通的requests as the files属性接受dict只允许唯一键的对象。

那么,我们如何实现这一目标requests module?


我在文档中找到了这个:https://requests.readthedocs.io/en/latest/user/quickstart/#more-complicated-post-requests https://requests.readthedocs.io/en/latest/user/quickstart/#more-complicated-post-requests

使用元组列表来创建映射,而不是字典:

r = requests.post(
    "https://httpbin.org/anything",
    files=[
        ("file", ("dummy_file.txt", b"File content....")),    
        ("years", (None, 2019)),
        ("years", (None, 2020)),
    ]
)

数据已发送r.request.body:

--8d763b42e4adf30aaefb9657df8bcf1b
Content-Disposition: form-data; name="file"; filename="dummy_file.txt"

File content....
--8d763b42e4adf30aaefb9657df8bcf1b
Content-Disposition: form-data; name="years"

2019
--8d763b42e4adf30aaefb9657df8bcf1b
Content-Disposition: form-data; name="years"

2020
--8d763b42e4adf30aaefb9657df8bcf1b--
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法使用 python 请求发送多部分/表单数据数组? 的相关文章

  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 补丁 - 为什么相对补丁目标名称不起作用?

    我已经从模块导入了一个类 但是当我尝试修补类名而不使用模块作为前缀时 出现类型错误 TypeError Need a valid target to patch You supplied MyClass 例如 以下代码给出了上述错误 imp
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 在 Django OAuth Toolkit 中安全创建新应用程序

    如何将 IsAdminUser 权限添加到 Django OAuth Toolkit 中的 o applications 视图 REST FRAMEWORK DEFAULT PERMISSION CLASSES rest framework
  • Android httpclient文件上传数据损坏和超时问题

    我在 Android 中上传图像时遇到问题 我正在使用 apache httpmime 4 1 lib 代码是这样的 MultipartEntity reqEntity new MultipartEntity HttpMultipartMo
  • Python新式类和__subclasses__函数

    有人可以向我解释为什么这有效 在 Python 2 5 中 class Foo object pass class Bar Foo pass print Foo subclasses 但这不是 class Foo pass class Ba
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • 将seaborn.palplot轴添加到现有图形中以可视化不同调色板

    将seaborn人物添加到子图中是usually https seaborn pydata org examples cubehelix palette html创建图形时通过传递 ax 来完成 例如 sns kdeplot x y cma
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练

随机推荐

  • 当输入多个单词作为输入时,使用 AND 条件过滤列表

    我正在尝试使用 jQuery 根据用户输入过滤列表 到目前为止 它工作正常 但如果用户输入多个单词 我希望能够使用相当于 AND 条件的方式充分过滤列表 例如 如果用户输入 丰田手册 则仍应显示以下两个元素 丰田 Echo 2001 手册
  • 相对于另一个居中视图的位置视图

    你好 SwiftUI 社区 我正在尝试做一些可能很容易做的事情 但我已经坚持了几个小时了 在列表中 我希望项目由以下组成 水平居中的文本 数字 号码左侧的文字 号码右侧的文字 我尝试了很多东西 对齐 对齐指南 GeometryReader
  • 单个 postgresql 查询中的文本和 jsonb 连接

    如何在 postgresql 中连接 jsonb 对象内的字符串 换句话说 我在同一查询中使用 JSONb 连接运算符以及文本连接运算符 但遇到了麻烦 或者 如果我应该执行一个完全不同的查询 我将不胜感激听到建议 目标是更新包含 jsonb
  • 对齐按钮背景图像

    我的 WinForms 应用程序中有一个按钮 我向其中添加了图像和文本 我将文本向右对齐 并希望将背景图像向左对齐 但发现这是不可能的 有什么办法可以做到这一点吗 我还尝试在按钮上仅设置图像 但无法在按钮属性中调整图像大小 有人可以帮我解决
  • Julia:生成唯一的随机整数数组

    我正在尝试创建 10 个唯一随机整数的元素数组 但是我无法创建具有唯一值的数组 Julia 中是否有类似 Python 的东西样本函数 https docs python org 2 library random html random s
  • 使用 SQLCeResultSet 更新/插入表

    我有一个定期更新的 SQL Compact Edition 数据库 通过 Web 服务 我写入数据库的部分花费的时间太长 我目前正在使用 Linq to Datasets 进行此操作 如这个问题 https stackoverflow co
  • keycloak 无效参数:反向代理后面的redirect_uri

    如何正确配置NGINX作为Keycloak前面的代理 作为文档询问和回答这个问题 因为我现在不得不重复这样做 并且在一段时间后忘记了细节 这是专门处理 Keycloak 位于反向代理后面的情况 例如nginx 和 NGINX 正在终止 SS
  • 如何在 springdoc 中注释 requestBody 的各个元素?

    我有一个 spring 启动 服务器 想要使用 springdoc 从注释生成 OpenAPI 规范 我有一个请求 请求正文中有两个参数 我希望第一个是必需的 第二个是可选的 RequestBody required true false
  • 如何重写控制台项目中的一行文本?由 小码哥发布于

    我正在开发一个 C 控制台项目 我想显示一个百分比 而不需要每次都创建一个新行 这样窗口就不会被数千行堵塞 有没有办法删除打印的最后一行或者说下次我输出一行时它应该替换当前行 您可以使用 r 回车符 将光标返回到行的开头 这适用于 Wind
  • 如何在 Python Cerberus 中将字符串强制转换为日期时间?

    我试图将字符串强制为日期 以便它可以验证日期数据类型 但它仍然返回False from cerberus import Validator from datetime import datetime v Validator v schema
  • 如果这是在 Objective C 中使用自定义字符串属性的正确方法,为什么我不能提取正确的数值?

    我正在修改一个早期项目 其中使用标签来识别 1 of 5 1 of 16 或 1 of 10UIButtons 我想根据我的理解用自定义属性替换标签这个答案 https stackoverflow com a 11594662 234859
  • 如何设置 Visual Studio 在 (Umbraco) 项目中创建 CSHTML 文件

    因此 我正在 Visual studio 中为我的 Umbraco 项目开发剃刀宏脚本 一切工作正常 但有两件事真的很烦人 如果我想创建一个新的 CSHTML 文件 最佳解决方案是复制现有文件 我没有完整的剃须刀智能感知 例如Html Ra
  • 谷歌 Colab 上的 RVL-CDIP 数据集

    我正在尝试使用以下命令在 google colab 上下载 RVL CDIP 数据集 wget load cookies tmp cookies txt https docs google com uc export download co
  • 无法导入caffe

    我执行了make pycaffe在 caffe 目录中并且运行良好 我也这样做了 gsamaras gsamaras A15 caffe python export PYTHONPATH PYTHONPATH home gsamaras c
  • 如何将 ShortDate 字符串格式与 Html.TextBoxFor 一起使用

    使用带有 MVC2 的实体框架 我有一系列日期文本框 我想以短日期格式显示模型中的数据 但我必须使用 Html TextBoxFor 才能使更新代码正常工作 尝试使用 HTML Textbox 数据永远不会保存到模型中 我已经尝试操作字符串
  • 在java中以附件形式发送文件

    我有一个java代码 我必须发送一个依恋 可能是 doc db 或 file 所以我使用以下代码 消息已成功发送 并且特定附件文件未发送且也未收到 我的代码是 import java util Date import java util P
  • 如何在 Swift 3 中将 UIImage 数组导出为电影?

    我需要导出一组UIImage并制作一部在图像前面放置一些文本的电影 如果可能的话还可以添加音乐 你能帮我提供代码吗 我只找到了一些东西Objective c和旧版本的Swift 这是我对这个问题发布的第一个答案 从 UIImage 创建电影
  • 鼠标悬停在表格行上显示表格单元格

    我有一张看起来像这样的桌子 table thead tr th Foo th th Bar th tr thead tbody tr class data td Info here td a a url here class edit gt
  • 是否有使用 EF 数据库优先方法来解释该主题的 Fluent API 教程?

    关于 Fluent API 的教程有很多 但它们都使用 Entity Framework Code First 代码示例进行解释 由于我不了解代码优先 您是否知道任何 Fluent API 教程可以使用 EF 数据库优先方法解释该主题 谢谢
  • 有没有办法使用 python 请求发送多部分/表单数据数组?

    假设有一个端点接受HTTP请求与multipart form data内容类型 以下是可接受的请求正文的示例 033392576939750140334380 Content Disposition form data name file