将请求的响应保存到文件

2023-12-28

我在用着Requests http://docs.python-requests.org/en/latest/api/将 PDF 上传到 API。它被存储为下面的“响应”。我正在尝试将其写到 Excel 中。

import requests

files = {'f': ('1.pdf', open('1.pdf', 'rb'))}
response = requests.post("https://pdftables.com/api?&format=xlsx-single",files=files)
response.raise_for_status() # ensure we notice bad responses
file = open("out.xls", "w")
file.write(response)
file.close()

我收到错误:

file.write(response)
TypeError: expected a character buffer object

我相信所有现有的答案都包含相关信息,但我想总结一下。

返回的响应对象requestsget 和 post 操作包含两个有用的属性:

响应属性

  • response.text- 包含str与响应文本。
  • response.content- 包含bytesraw响应内容。

您应该根据您期望的响应类型选择这些属性中的一个或另一个。

  • 对于基于文本的响应(html、json、yaml 等),您可以使用response.text
  • 对于基于二进制的响应(jpg、png、zip、xls 等),您可以使用response.content.

将响应写入文件

将响应写入文件时,您需要使用开放功能 https://docs.python.org/3/library/functions.html?highlight=open#open使用适当的文件写入模式。

  • 对于文本回复,您需要使用"w"- 纯写模式。
  • 对于二进制响应,您需要使用"wb"- 二进制写入模式。

Examples

文本请求并保存

# Request the HTML for this web page:
response = requests.get("https://stackoverflow.com/questions/31126596/saving-response-from-requests-to-file")
with open("response.txt", "w") as f:
    f.write(response.text)

二进制请求并保存

# Request the profile picture of the OP:
response = requests.get("https://i.stack.imgur.com/iysmF.jpg?s=32&g=1")
with open("response.jpg", "wb") as f:
    f.write(response.content)

回答原来的问题

原始代码应该使用wb and response.content:

import requests

files = {'f': ('1.pdf', open('1.pdf', 'rb'))}
response = requests.post("https://pdftables.com/api?&format=xlsx-single",files=files)
response.raise_for_status() # ensure we notice bad responses
file = open("out.xls", "wb")
file.write(response.content)
file.close()

但我会更进一步并使用with 上下文管理器open https://book.pythontips.com/en/latest/context_managers.html.

import requests

with open('1.pdf', 'rb') as file:
    files = {'f': ('1.pdf', file)}
    response = requests.post("https://pdftables.com/api?&format=xlsx-single",files=files)

response.raise_for_status() # ensure we notice bad responses

with open("out.xls", "wb") as file:
    file.write(response.content)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将请求的响应保存到文件 的相关文章

  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • Pytorch - 推断线性层 in_features

    我正在构建一个玩具模型来获取一些图像并进行分类 我的模型看起来像 conv2d gt pool gt conv2d gt linear gt linear 我的问题是 当我们创建模型时 我们必须计算第一个线性层的大小in features基
  • 在 Python 中同时插入行

    我正在尝试对我的代码进行矢量化 但遇到了障碍 我有 nxd x 值数组 x1 xn 其中每一行 x1 有很多点 x11 x1d nxd y 值数组 y1 y2 y3 其中每一行 y1 有很多点 y11 y1d x 值的 nx1 数组 x 1
  • 如何将人物传奇带到前台?

    我有一系列子图 其中每个子图都有一个图例 我想在每个子图之外与相邻子图重叠 问题在于图例位于其自己的图的 顶部 但位于相邻图的下方 Legend 不将 zorder 作为参数 所以我不知道如何解决这个问题 这是我使用过的代码 import
  • 将文件标记为从 Python 中删除?

    在我的一个脚本中 我需要删除当时可能正在使用的文件 我知道我无法删除正在使用的文件 直到它不再使用为止 但我也知道我可以将该文件标记为由操作系统 Windows XP 删除 我将如何在 Python 中做到这一点 以及另一个不依赖于 pyw
  • Python实时读取串口数据

    我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据 PIC 在 2Mbps 下完美定时工作 FTDI USB 串行端口在 2Mbps 下工作也很好 均通过示波器验证 我每秒发送消息 大小约为 1
  • 将数字转换为整数列表[重复]

    这个问题在这里已经有答案了 我该如何写magic下面的函数 gt gt gt num 123 gt gt gt lst magic num gt gt gt gt gt gt print lst type lst 1 2 3
  • 如何从 Python 3.5 降级到 3.4

    我想安装 kivy 链接在这里 https kivy org docs installation installation windows html install win dist 用于项目 但是 当尝试使用 pip 安装它所依赖的包时
  • python:UnboundLocalError:赋值前引用的局部变量“open”[重复]

    这个问题在这里已经有答案了 def read lines readFileName readfile txt f open readFileName r contents f read and so on read lines 当我运行这个
  • 自适应支付 API 错误 580001

    我正在 python 中向 paypal 自适应支付 API 发出 PAY 请求 并收到通用错误 id 580001 没有其他信息 headers API credentials for the API caller business ac
  • 进行异步调用时,“yield”在龙卷风中如何工作?

    最近我在学习龙卷风简介 我遇到了以下代码 class IndexHandler tornado web RequestHandler tornado web asynchronous tornado gen engine def get s
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • Tkinter 如何根据此组合框自动更新第二个组合框

    我在 Tkinter Python 中遇到了组合框更新的问题 我有两个组合框 组合框A with values A B C and 组合框B 我想要的是 当值A在组合框中选择A然后在组合框中B显示值 1 2 3 当值B在组合框中选择A然后在
  • 如何使用 selenium 获取 javascript 结果?

    我有以下代码 from selenium import selenium selenium selenium localhost 4444 chrome http some site com selenium start sel selen
  • 返回吃异常

    我至少发现了以下行为weird def errors try ErrorErrorError finally return 10 print errors prints 10 It should raise NameError name E
  • 对 Python 列表元素进行分组

    我有一个 python 列表 如下所示 my list 25 1 0 65 25 3 0 63 25 2 0 62 50 3 0 65 50 2 0 63 50 1 0 62 我想根据以下规则对它们进行排序 1 gt 0 65 0 62 l
  • python 相当于 sed

    有没有一种方法 无需双循环即可完成以下 sed 命令的操作 Input Time Banana spinach turkey sed i Banana s Toothpaste file Output Time BananaToothpas
  • 将同一 numpy 数组的两个视图组合成单个视图而不复制数组?

    我有一个大型 2d numpy 数组 我想删除它的子集并处理函数剩下的内容 我需要对许多子集执行此操作 因此理想情况下我不想每次都创建数组的副本 该函数不会更改数组中的任何值 mat np load filename mat 1 mat i
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐

  • 如何在私有子网上运行Dataflow python?

    Apache Beam 2 1 0 添加了对在私有子网上的 Dataflow 运行器上提交作业且无需公共 IP 的支持 这是我们需要满足防火墙规则的 我打算使用squid代理来访问apt get pip等安装python依赖项 代理实例已经
  • 需要动态转换派生类:寻找替代方法

    我以这种简单的形式提出我的问题 class animal public animal name animal virtual void makenoise cout lt lt name lt
  • 替换 Javascript 构造函数的 .prototype 而不是添加它是否存在问题?

    我遇到过另一个开发人员的代码 它执行类似的操作来定义 Javascript 类型 function Ninja Ninja prototype swingSword function return true 当更传统的方式是这样的 func
  • 解析 allocator::rebind 调用

    我刚刚学习 C 分配器 我试图理解的目的struct rebind在每个分配器中 例如 在这个程序 https msdn microsoft com en us library 5fk3e8ek aspx include
  • Android 上 AVRCP 的最佳实践(将元数据发送到蓝牙设备)

    我想通过 Android 4 3 设备将元数据发送到蓝牙设备 我遇到的有效解决方案是向 google android music 谷歌音乐应用程序 发送意图 通知它有关元数据的信息 如下所示 通过A2DP AVRCP发送曲目信息 https
  • 为什么不建议在生产中启动单独的 MongoDB 实例作为副本集?

    根据评论中的讨论这个答案 https stackoverflow com a 51239633 330867 kevinadi 建议我提出一个与他的评论相关的新问题 您可以出于开发目的使用一个节点启动一个副本集 请注意 这不是生产环境的推荐
  • 如何使用 Plots.jl 根据 z 中的值对 (x,y) 散点图着色?

    使用 Julia 中的 Plots jl 包 我可以使用各种后端来制作基于两个向量的散点图x and y k 100 x rand k y rand k scatter x y 我无法找到有关如何根据某些长度给它们着色的信息k vector
  • 相当于 Ruby 中的“pass”

    在Python中有一个pass用于定义空函数 条件 循环等的关键字 Ruby 有类似的东西吗 Python 示例 def some function do nothing pass 不 Ruby 中没有这样的东西 如果你想要一个空块 方法
  • 升级到 JSF 2.4

    我正在尝试在 Netbeans 11 0 中从 JSF 2 2 升级到 2 4 I 下载了二进制文件 https mvnrepository com artifact org glassfish javax faces 2 4 0并将其添加
  • 使用 Jquery 设置 ViewBag 中的值

    我只是想问 有没有办法使用jquery动态设置viewbag值 我在我的脚本中尝试这段代码 btn on click function ViewBag Id this attr id 我不知道它是否正确 但是当我尝试运行我的 MVC 3 项
  • 反应路由器重定向与history.push

    我正在读书反应路由器 Redux 示例 https github com ReactTraining react router tree master packages react router redux examples我很困惑 之间有
  • 如何查看 DOM 元素绑定了哪些具体事件?

    我觉得我想经常这样做 但不能 因为我无法了解实际事件 例如 这只是我的一个例子can只需查看 API 即可 我试图了解 stackoverflow 的图像上传器是如何工作的 但是当我调用 0 data events or form acti
  • 函数声明中的尾随 const 或 && [重复]

    这个问题在这里已经有答案了 我正在查看 APIstd optional
  • 保留在 akka 流中是什么意思?

    我正在学习akka流并在代码中遇到Keep left和Keep right implicit val system ActorSystem KafkaProducer implicit val materializer ActorMater
  • React Native - “您当前正在使用 NODE_ENV ===“生产”之外的精简代码”

    我在 React Native 上遇到了这个错误 而不是 ReactJS 所以所有使用 webpack 或 browserify 的解决方案 解决方法都没有帮助 完整错误 您当前正在使用 NODE ENV 生产 之外的精简代码 这意味着您正
  • 将指向自动变量的指针传递给函数是否安全?

    假设我有一个函数声明并初始化两个局部变量 默认情况下它们具有存储持续时间auto 然后 该函数调用第二个函数 并将这两个局部变量的地址传递给该函数 第二个函数可以安全地使用这些指针吗 一个简单的程序示例 用于补充该描述 include
  • .NET Remoting,将对象传递到方法中

    我正在编写一个 NET 远程处理应用程序 我的 dll 服务器和客户端都工作正常 但是 当我尝试更改方法调用以采用对象参数而不是 int 等简单类型时 它会抱怨此错误 类型 System Runtime Remoting ObjRef 及其
  • 在后台执行子进程

    我有一个 python 脚本 它接受输入 将其格式化为调用服务器上另一个脚本的命令 然后使用子进程执行 import sys subprocess thingy sys argv 1 command usr local bin others
  • 从 Android 调用 JavaScript

    我在从 Android 内部调用基本 JavaScript 函数时遇到问题 当我从以下位置克隆存储库时本教程 https www tanelikorri com tutorial android communication between
  • 将请求的响应保存到文件

    我在用着Requests http docs python requests org en latest api 将 PDF 上传到 API 它被存储为下面的 响应 我正在尝试将其写到 Excel 中 import requests fil