在python中没有括号的csv单元格中写入多个值

时间:2016-09-06 19:28:36

标签: python excel csv

我有一个对象列表。每个对象都有不同的属性。 其中一个是清单 我想将此对象导出到看起来像

的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个值:a1,2,3作为字符串

1 个答案:

答案 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"

(引用保护逗号以便将其视为单个单元格)