gpt4 book ai didi

Python:如何从字典列表中创建一个 csv 字符串(无文件)?

转载 作者:行者123 更新时间:2023-12-04 16:01:10 25 4
gpt4 key购买 nike

在 Python 中,我有一个像这样的字典列表:

[
{
"col2": "2",
"id": "1",
"col3": "3",
"col1": "1"
},
{
"col2": "4",
"id": "2",
"col3": "6",
"col1": "2"
},
{
"col1": "1",
"col2": "4",
"id": "3",
"col3": "7"
}
]

我需要将其转换为 csv 格式的字符串,包括标题行。 (对于初学者来说,我们不要关心列和行分隔符......)
因此,理想情况下,结果将是:
id,col1,col2,col3
1,1,2,3
2,2,4,6
3,1,4,7

(“理想情况下”,因为列顺序并不重要;尽管首先拥有“id”列会很好......)

我搜索了 SOF 并且有许多类似的问题,但答案总是涉及创建一个 csv 文件 使用 csv.DictWriter。我不想创建文件,我只想要那个字符串!

当然,我可以遍历列表并在此循环中遍历字典键,并以这种方式使用字符串操作创建 csv 字符串。但是肯定必须有一些更优雅和有效的方法来做到这一点?

另外,我知道 Pandas 库,但我试图在一个非常有限的环境中执行此操作,我更喜欢仅使用内置模块。

最佳答案

您可以使用 io.StringIO 写入“字符串”而不是文件。使用 csv.DictWriter 的例子我们得到以下代码:

import csv
import io

data = [...] # your list of dicts

with io.StringIO() as csvfile:
fieldnames = ['id', 'col1', 'col2', 'col3']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

writer.writeheader()
for row in data:
writer.writerow(row)
print(csvfile.getvalue())

关于Python:如何从字典列表中创建一个 csv 字符串(无文件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58283350/

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