我有一个对象列表。每个对象都有不同的属性。 其中一个是清单 我想将此对象导出到看起来像
的csv文件a, "1,2,3"
b,"1,2,3"
以便csv在Excel程序中可读
我的代码看起来像这样:
final_list = []
for a in list:
first_value = a.first_value
list2 = []
for b in a.list:
list2.append(b)
final_list.append(first_value)
final_list.append(list2)
with open('file' ) as f:
writer = csv.writer(f)
writer.writerows(final_list)
pass
导致此csv行包含我不想要的括号和引号
1, "['1','3','4']"
2,"['1','2','3']"
我需要每行2个值:a
和1,2,3
作为字符串
答案 0 :(得分:2)
如果你这样做:
final_list.append(first_value)
final_list.append(list2)
您创建一个包含值和列表的行。
csv
模块在写入时执行str
转换,这解释了在python中调试时看到的字符串。
取而代之的是:
final_list.append(a.first_value) # string
final_list.append(",".join(a.list)) # composes a coma separated string with the contents of a.list
结果:
a,"1,2,3"
(引用保护逗号以便将其视为单个单元格)