Kai*_*ner 5 python csv string dictionary list
在 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"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为 csv 格式的字符串,包括标题行。(对于初学者来说,我们不关心列和行分隔符......)所以,理想的结果是:
id,col1,col2,col3
1,1,2,3
2,2,4,6
3,1,4,7
Run Code Online (Sandbox Code Playgroud)
(“理想情况下”,因为列顺序并不重要;不过,先有“id”列会很好......)
我搜索过 SOF,有很多类似的问题,但答案总是涉及使用 csv.DictWriter 创建 csv文件。我不想创建文件,我只想那个字符串!
当然,我可以循环遍历列表,并在该循环内循环遍历字典键,并以这种方式使用字符串操作创建 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())
Run Code Online (Sandbox Code Playgroud)