使用.writerow()时将数组作为一个单元格列出

时间:2018-11-21 22:40:39

标签: python csv file-io export-to-csv opencsv

写入CSV:

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam', 'WOW', '['HMM', 'WOW']', 'BYE'])
    spamwriter.writerow(['Cool', 'Nice'])

Excel输出意外:

预期的Excel输出: enter image description here

我如何将['HMM', 'WOW']全部保留在单元格C中?

1 个答案:

答案 0 :(得分:2)

问题是,您正在使用定界符,,但同时也尝试将,放入单元格中。那是行不通的。您可以尝试使用:

with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=';',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)

然后更改操作系统的区域设置,以便Office应用程序将;识别为电子表格中的分隔符。否则,您必须摆脱单元格中的,

而且,至少对我来说,它引发错误,因为在定义列表时,您没有正确地避开'符号。我必须将其更改为:

spamwriter.writerow(['Spam', 'WOW', "['HMM', 'WOW']", 'BYE'])

使用;作为分隔符的结果:

enter image description here