在python中将一个不同长度的数组写入csv

时间:2012-12-01 23:48:40

标签: python csv

我正在尝试将大量字段从Class写入csv。 E.g。

for i in range(0,  len(t)):
    t.writerow([t[i].a,  t[i].b,  t[i].c,...]

但是我有一个子类,我也想写在这个列表的末尾:

for i in range(0,  len(t)):
    t.writerow([  t[i].a,  t[i].b,  t[i].c,...  t[i].z[0].s,  t[i].z[1].s ...])

但是我不确定如何实现这一点,子类的长度各不相同,那么我如何确保每一行只在最后附加相关数量的子类?我在documentation中找不到任何关于它的内容。我是否从子类条目中创建一个字符串,然后在结尾处粘贴一个条目?感谢。

2 个答案:

答案 0 :(得分:1)

如果z只是一个python list,只需将其附加到t的字段列表中:

t.writerow([t[i].a, t[i].b, t[i].c, ...] + t[i].z)

[one, list] + [another, list]相同。

看起来您可以循环遍历t(列表)本身,而不是使用range()

for item in t:
    t.writerow([item.a, item.b, item.c, ...] + item.z)

答案 1 :(得分:1)

我认为写这样的东西会起作用:

for i in range(len(t)):
    row = [[ e.a, e.b, e.c, ...] + [e.z[0], e.z[1], e.z[2], ...] for e in t[i]]
    t.writerow(row)