【问题标题】:Python, dictionary to table and output to csv filePython,字典到表并输出到 csv 文件
【发布时间】:2014-07-28 13:07:45
【问题描述】:

我正在用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

以及每列名称下方的数据。

我该怎么做?

【问题讨论】:

  • 这是一个字典而不是一个列表。
  • 到目前为止还需要尝试什么?
  • 您遇到了哪些问题? Stack Overflow 不是“为我编写代码”网站

标签: python csv


【解决方案1】:

正如 cmets 中的其他人所指出的,您拥有的数据是 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)
]

探索writerow csv模块的方法,将上述输出写入csv文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多