csv.writerows()为每一行写一个字符

时间:2015-03-14 21:15:48

标签: python

#!/usr/bin/env python
import csv

e = {'description':'The remote host is missing AIX', 'script_version': '$Revision: 1.4 $', 'plugin_modification_date':'2011/03/14'}

if __name__ == '__main__':
    k = e.keys()
    v = e.values()

    print k
    print v

    with open('poop2.csv', 'w') as g:
        writer = csv.writer(g)
        for v in e:
            writer.writerows(v)

这是我的csv看起来像

的样本
d
e
s
c

以匹配keys中的所有字符。

1 个答案:

答案 0 :(得分:3)

csv.writerows(v)期望v是一系列行。相反,传入的v是一个字符串 - 一系列字符,而不是一系列行。因此,每行都会得到一个字符。

csv.writerow([v])置于循环中更可能是您想要的。


顺便说一下,如果你想把键和值放在一起,我会迭代成对而不是提前分割键和值:

for k, v in e.iteritems():
  writer.writerow([k, v])

相反,要生成两行,第一行使用键,第二行使用值:

writer.writerow(e.keys())
writer.writerow(e.values())