将CSV写为输出而不是打印
Posted
技术标签:
【中文标题】将CSV写为输出而不是打印【英文标题】:write csv as output instead of print 【发布时间】:2021-12-11 17:04:48 【问题描述】:我提出了一个 API 请求并在循环中打印了一个 DataFrame。
现在我想代替打印,直接将输出写入 csv。 我在网上寻找答案,但不明白。非常感谢您的帮助!
这是我的循环:
for company in eic_listing:
for facility in company["facilities"]:
if "df" in facility:
print(company["name"], facility["name"])
print(
facility["df"]["status"],
facility["df"]["gasDayStartedOn"],
facility["df"]["gasInStorage"],
facility["df"]["full"],
facility["df"]["withdrawal"]
)```
【问题讨论】:
***.com/questions/tagged/python+csv 哪一个是您想要的输出:1. csv 文件,或 2. csv 格式的打印输出?哪一个? csv格式的打印输出 【参考方案1】:在性能方面,循环遍历数据框是一个糟糕的想法。如果你真的想这样做,你可以使用 csv 模块将输出格式化为 csv:
import csv
...
wr = csv.writer(sys.stdout) # or use a Python file object here...
for company in eic_listing:
for facility in company["facilities"]:
if "df" in facility:
wr.writerow(company["name"], facility["name"],
facility["df"]["status"],
facility["df"]["gasDayStartedOn"],
facility["df"]["gasInStorage"],
facility["df"]["full"],
facility["df"]["withdrawal"]
)
【讨论】:
谢谢,这很有帮助!你能提示一个更好的方法吗? @NoelHarris:不,我不能,至少在不知道什么是eic_listing
、company
和 facility
...【参考方案2】:
Pandas 确实有一个“to_csv”方法。也许这会对你有所帮助:pandas.DataFrame.to_csv
【讨论】:
我知道,谢谢,我的问题是,如何将它集成到打印输出中而不是打印出来?【参考方案3】:尝试将您的打印行替换为:
df.to_csv('out.csv')
【讨论】:
不,我在问,如何将它集成到循环中,而不是打印它以上是关于将CSV写为输出而不是打印的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 中的 PrintWriter 将逗号打印到 .csv 文件?
Python re.findall 将输出打印为列表而不是字符串
如何将 foreach 输出为字符串 c# // g 打印为数组而不是字符串