gpt4 book ai didi

csv - 将列表字典写入 csv

转载 作者:行者123 更新时间:2023-12-04 02:24:38 37 4
gpt4 key购买 nike

我正在尝试将列表字典写入 CSV 文件。我希望这些键是 CSV 文件的标题,以及与该键关联的列中的每个键关联的值。
如果我的字典是:

{'600': [321.4, 123.5, 564.1, 764.1], '300': [12.7, 154.7, 327.5, 894.4], 'Position': [1,2,3,4]}

我曾尝试使用 csv.DictWriter 如下:
    import csv
outputFile=open('chan_press_prof.csv','wb')
dictPress={'600': [321.4, 123.5, 564.1, 764.1], '300': [12.7, 154.7, 327.5, 894.4], 'Position': [1,2,3,4]}
fields=['Position','300','600']
writeFile = csv.DictWriter(outputFile, fieldnames=fields)
writeFile.writeheader()
writeFile.writerow(dictPress)
outputFile.close()

但我一团糟:

位置,300,600
"[1, 2, 3, 4]","[12.7, 154.7, 327.5, 894.4]","[321.4, 123.5, 564.1, 764.1]"

我尝试遵循以下建议: Dictionary of Lists to CSV in Python .
那更接近,但不起作用,因为列的顺序错误:

代码:
    import csv
import StringIO
from itertools import izip_longest
outputFile=open('chan_press_prof.csv','wb')
dictPress={'600': [321.4, 123.5, 564.1, 764.1], '300': [12.7, 154.7, 327.5, 894.4], 'Position': [1,2,3,4]}
fields=['Position','300','600']
rows=izip_longest(*dictPress.values())
buf=StringIO.StringIO()
writeFile=csv.writer(outputFile)
writeFile.writerow(fields)
writeFile.writerows(rows)
outputFile.close()

和输出:
位置,300,600
12.7,1,321.4
154.7,2,123.5
327.5,3,564.1
894.4,4,764.1

请注意,位置值 (1,2,3,4) 不在右列中。

任何帮助表示赞赏!

最佳答案

我想做同样的事情,这对我有用。使用带有 * 运算符的 zip 对我有用。还要注意 writerow 单数和 writerows 复数有助于将字典写入我想要的带有标题的文件中。

    zd = zip(*dictionary.values())
with open('file.csv', 'w') as file:
writer = csv.writer(file, delimiter=',')
writer.writerow(dictionary.keys())
writer.writerows(zd)

输出看起来像这样,
gender,age,state,race,weights,educ
1,39,32,06,0.57,8
2,35,33,06,0.93,5
1,39,11,06,0.83,5

您的示例应该完全相同,只是将字典更改为包含您的数据的字典。

关于csv - 将列表字典写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396121/

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