簡體   English   中英

通過 python 將數據從字典寫入 csv

[英]write data from dictionary to csv by python

我有一個字典如下,其中有重復的項目名稱,不同之處在於每個部分名稱的值。 我想將這些信息寫入 csv,預期結果是:

在此處輸入圖像描述

    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()))

試試下面的代碼來獲得你想要的 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM