通过python将数据从字典写入csv

2024-05-20 08:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典如下,它有重复的项目名称,不同的是每个部分名称的值。我想将这些信息写入csv,预期结果是:

enter image description here

    import csv
dict={
    'test':['part_name','test1','test2','test3','part_name','test1','test2','test3'],
    'value':['partA','12','55','109','partB','14','54','106'],
    'lcl':['lcl','10','50','100','lcl','10','50','100'],
    'ucl':['ucl','18','60','115','ucl','18','60','115'],
}
tmp={}
for k,v1,v2,v3 in zip(dict["test"],dict["value"],dict["lcl"],dict["ucl"]):
    tmp.setdefault(k, []).append([v1,v2,v3])
print(tmp)
with open('table.csv','w') as f:
    writer_inline = csv.writer(f, delimiter=',', lineterminator=',')
    writer = csv.writer(f, delimiter=',', lineterminator='\n')
    writer.writerow(tmp.keys())
    writer.writerows(zip(*tmp.values()))

Tags: csvnametestvaluetmpdictv2writer
1条回答
网友
1楼 · 发布于 2024-05-20 08:46:09

请尝试以下代码以获取所需的csv。我建议不要用dict作为你字典的名字。我已将其更改为d

import csv
d = {
    'test':['part_name','test1','test2','test3','part_name','test1','test2','test3'],
    'value':['partA','12','55','109','partB','14','54','106'],
    'lcl':['lcl','10','50','100','lcl','10','50','100'],
    'ucl':['ucl','18','60','115','ucl','18','60','115'],
}

headers = d['test'][:len(set(d['test']))]
size = len(headers)
d.pop('test', None)

parts = []
for i in d:
    parts += [[d[i][j:(j+size)] for j in range(0, len(d['value']), size)]]

rows = []
for part in list(zip(*parts)):
    rows += part

with open('table.csv','w') as f:
    writer = csv.writer(f, delimiter=',', lineterminator='\n')
    writer.writerow(headers)
    writer.writerows(rows)

相关问题 更多 >