f.writerow([field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22])
我想用以下内容替换上面的内容:
f.writerow([hrow])
字段的数量可以根据其他内容而改变,我想只是将字段附加到变量中,如果它们是否参与。当我打印hrow时,我得到了这个:
field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22
但我猜它的格式不正确,因为它将它全部打印到第一行和第一列的一个单元格中,但每个都应该是一个标题。我假设在这种情况下你不能使用字符串变量。但是有办法做到这一点吗?
编辑:使用f.writerow(hrow)后的结果
更多信息:
编辑:已解决。
将声明更改为此
hrow = (args.sfdcfield1).split()
并附加对hrow有效的args。 然后
f.writerow(hrow)
的工作。
感谢丹尼尔罗斯曼。 我会按照自己的意愿工作,优化代码。 (它的方法很长,但它有助于我学习)
:)
答案 0 :(得分:0)
您的问题有点难以理解,但我认为您的意思是hrow
变量中包含值列表,并且您希望将它们全部写为CSV行中的单个字段。在这种情况下,您只需传递列表而不将其包装在另一个列表中:
f.writerow(hrow)
修改强>
您不应该通过字符串连接来构建hrow
。你应该把它作为一个列表,并将每个元素附加到它。
hrow = []
if ...whatever...:
hrow.append(value)
请注意,即使我们看不到代码的其余部分,它看起来很奇怪非常。你不太可能需要大量的变量来调用像idxsfdcfield21
这样的东西;您更有可能需要一个名为idxsfdc
的列表,并再次将每个元素附加到它。而且你可以通过简单地循环遍历args
来避免数百行代码。