将 API 输出响应导出为 CSV - Python

发布于 2025-01-11 00:16:31 字数 644 浏览 0 评论 0原文

我不是 Python 专家,但我用它从 API 调用数据。我得到了代码 200 并打印了部分数据,但我无法导出/保存/写入输出(到 CSV)。有人可以帮忙吗?

这是我的代码:

import requests
headers = {
    'Accept': 'text/csv',
    'Authorization': 'Bearer ...'
}

response = requests.get('https://feeds.preqin.com/api/investor/pe', headers=headers)
print response
output = response.content

数据(应该是 CSV,对吗?)如下所示: 在此处输入图像描述

我设法将其保存为 txt,但输出不可用/不可导入(例如到 Excel)。我使用了以下代码:

text_file = open("output.txt", "w")
n = text_file.write(output)
text_file.close()

谢谢您,致以最诚挚的问候,

A

I am not an expert in Python but I used it to call data from an API. I got a code 200 and printed part of the data but I am not able to export/ save/ write the output (to CSV). Can anyone assist?

This is my code:

import requests
headers = {
    'Accept': 'text/csv',
    'Authorization': 'Bearer ...'
}

response = requests.get('https://feeds.preqin.com/api/investor/pe', headers=headers)
print response
output = response.content

And here is how the data (should be CSV, correct?) looks like:
enter image description here

I managed to save it as txt but the output is not usable/ importable (e.g. to Excel). I used the following code:

text_file = open("output.txt", "w")
n = text_file.write(output)
text_file.close()

Thank you and best regards,

A

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水溶 2025-01-18 00:16:31

您的内容使用管道 | 作为分隔符。 CSV 使用 , 逗号(这就是它们被称为逗号分隔值的原因)。

您只需用逗号替换数据的管道即可。但是,如果您拥有的数据本身使用逗号,这可能会出现问题。

output = response.content.replace("|", ",")

正如评论所建议的,您还可以使用 pandas:

import pandas as pd
from StringIO import StringIO

# Get your output normally...
output = response.content

df = pd.read_csv(StringIO(output), sep="|")

# Saving to .CSV
df.to_csv(r"C:\output.csv")

# Saving to .XLSX
df.to_excel(r"C:\output.xlsx")

Your content uses pipes | as a separator. CSVs use , commas (that's why they're called Comma Separated Values).

You can simply replace your data's pipes with commas. However, this may be problematic if the data you have itself uses commas.

output = response.content.replace("|", ",")

As comments have suggested, you could also use pandas:

import pandas as pd
from StringIO import StringIO

# Get your output normally...
output = response.content

df = pd.read_csv(StringIO(output), sep="|")

# Saving to .CSV
df.to_csv(r"C:\output.csv")

# Saving to .XLSX
df.to_excel(r"C:\output.xlsx")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文