无法保存来自 API 的 Excel 响应
Cannot save Excel response from API
我正在 POST 请求 API returns 一个 Excel 文件。
当我在没有 Python 的情况下尝试该过程时 - 在 Postman 中 - 它工作正常:我看到乱码输出,但如果我单击保存响应并保存到文件,它会将文件保存为我可以正常打开的 xlsx 文件:
当我尝试在 Python 中执行相同操作时,我也可以打印(乱码)响应,但我无法将文件保存为可以打开的文件。
代码的第一部分(运行s 没有问题):
import requests
for i in range (1,3):
url = "myurl"
payload={}
headers = {}
response = requests.request("POST", url, headers=headers, data=payload)
现在是代码的关键部分。
如果我做 A:
with open('C:\Users\mypath\exportdata.xlsx', "w") as o:
o.write(response.text)
print(response.text)
...然后当我 运行 代码时出现此错误:
File "C:\Users\Username\AppData\Local\Programs\Python\Python310\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 10-11: character maps to <undefined>
如果我做B:
with open('C:\Users\mypath\exportdata.xlsx', "w", encoding="utf-8") as o:
o.write(response.text)
print(response.text)
...然后代码 运行s 没有错误,但是当我打开文件时 excel 中出现 extension/format 错误。
如何使用 python 保存 excel 文件,以便之后可以正确打开和查看它?
这不是标准的 text/csv 到 excel 转换问题,您可以从乱码输出中看到 excel 文件的所有 XML 标志都在那里.
Excel 不是文本。 Excel 是二进制的。尝试 response.content:
with open(filename, "wb") as o:
o.write(response.content)
我正在 POST 请求 API returns 一个 Excel 文件。
当我在没有 Python 的情况下尝试该过程时 - 在 Postman 中 - 它工作正常:我看到乱码输出,但如果我单击保存响应并保存到文件,它会将文件保存为我可以正常打开的 xlsx 文件:
当我尝试在 Python 中执行相同操作时,我也可以打印(乱码)响应,但我无法将文件保存为可以打开的文件。
代码的第一部分(运行s 没有问题):
import requests
for i in range (1,3):
url = "myurl"
payload={}
headers = {}
response = requests.request("POST", url, headers=headers, data=payload)
现在是代码的关键部分。
如果我做 A:
with open('C:\Users\mypath\exportdata.xlsx', "w") as o:
o.write(response.text)
print(response.text)
...然后当我 运行 代码时出现此错误:
File "C:\Users\Username\AppData\Local\Programs\Python\Python310\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 10-11: character maps to <undefined>
如果我做B:
with open('C:\Users\mypath\exportdata.xlsx', "w", encoding="utf-8") as o:
o.write(response.text)
print(response.text)
...然后代码 运行s 没有错误,但是当我打开文件时 excel 中出现 extension/format 错误。
如何使用 python 保存 excel 文件,以便之后可以正确打开和查看它?
这不是标准的 text/csv 到 excel 转换问题,您可以从乱码输出中看到 excel 文件的所有 XML 标志都在那里.
Excel 不是文本。 Excel 是二进制的。尝试 response.content:
with open(filename, "wb") as o:
o.write(response.content)