gpt4 book ai didi

python - 将请求的响应保存到文件

转载 作者:IT老高 更新时间:2023-10-28 21:04:25 36 4
gpt4 key购买 nike

我正在使用 Requests将 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

最佳答案

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

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

响应属性

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

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

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

写响应文件

向文件写入响应时,您需要使用 open function使用适当的文件写入模式。

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

示例

文本请求并保存

# 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("/image/iysmF.jpg?s=32&g=1")
with open("response.jpg", "wb") as f:
f.write(response.content)

回答原问题

原始代码应该可以使用 wbresponse.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 context manager for open .

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)

关于python - 将请求的响应保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126596/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com