繁体   English   中英

Python:将字典以表格形式转储到csv文件的列中

[英]Python: dumping dictionaries to columns of a csv file in a table-like format

我有相同len d1, d2, ..., dn字典,需要将它们转储到新的csv文件的列中。

我希望该文件具有其标题,并且看起来非常像这样:

        |STAGE 1      | |STAGE 2               | |TOTAL                |
SIM     d1  d2  d3  d4  d5  d6  d7  d8  d9  d10  d11  d12  d13  d14  d15    
event 1
event 2
event 3
event 4
event n

每个d列的对应dictionary的值应在下面对齐,并且一个tab应能很好地工作以分隔每个列。

我知道我可以像这样创建一个csv文件:

import csv

my_d = {"STAGE 1": 1, "STAGE 2": 2, "TOTAL": 3}

with open('mycsvfile.csv', 'wb') as csvfile:  
    w = csv.DictWriter(csvfile, my_d.keys())
    w.writeheader()
    w.writerow(my_d)

但我似乎找不到出路,而且我也没弄清楚如何使像d1这样的标题显示为子标题。 如何用Python完成?

如果对列表进行转置,您将可以像示例一样将其写入csv

h1 = ['a','b','c','d','e']
d1 = [1, 2, 3, 4, 5]
d2 = [1, 2, 3, 4, 5]
d3 = [1, 2, 3, 4, 5]

transpose =  [h1, d1, d2, d3]

print(transpose)
print(list(map(list, zip(*transpose)))) 

输出:

>>> 
[['a', 'b', 'c', 'd', 'e'], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
[['a', 1, 1, 1], ['b', 2, 2, 2], ['c', 3, 3, 3], ['d', 4, 4, 4], ['e', 5, 5, 5]]
>>> 

如果您使用的是python 2 print(map(list, zip(*l))) ,则假定您使用的是Python 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM