我在python中编程
我的列表如下:
{'Net_rec': [403548, 403548, 403548], 'time': [1, 2, 3], 'disk_write': [219L, 219L, 219L], 'disk_read': [32904L, 32904L, 32904L], 'memory': [104468, 104468, 104468], 'cpu': [0.0, 0.0, 0.0], 'Net_sent': [36384, 36384, 36384]}
我需要将此列表输出到csv文件并获取如下表所示的列表:
time cpu memory disk_read disk_write net_send net_recv
以及每个列名称下方的数据。
我该怎么做?
答案 0 :(得分:0)
正如其他人在评论中指出的那样,您拥有的数据是dict
,而不是list
。您可以转换数据以构建列表列表,以便每个子列表都包含键和值。
即:
[
['Net_rec', 403548, 403548, 403548],
['time', 1, 2, 3],
['disk_write', 219L, 219L, 219L],
['disk_read', 32904L, 32904L, 32904L],
['memory', 104468, 104468, 104468],
['cpu', 0.0, 0.0, 0.0],
['Net_sent', 36384, 36384, 36384]
]
然后使用izip
会为您提供所需内容。
代码(假设data
有您的输入词典:
from itertools import izip
transformed_data = []
for k, v in data.items():
new_list = [k]
new_list.extend(v)
transformed_data.append(new_list)
print list(izip(*transformed_data)
这给出了:
[
('Net_rec', 'time', 'disk_write', 'disk_read', 'memory', 'cpu', 'Net_sent'),
(403548, 1, 219L, 32904L, 104468, 0.0, 36384),
(403548, 2, 219L, 32904L, 104468, 0.0, 36384),
(403548, 3, 219L, 32904L, 104468, 0.0, 36384)
]
探索csv模块的writerow
方法,将上述输出写出到csv文件中。