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

List array as one cell when using .writerow()

写入 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输出:

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

问题是,您在使用分隔符 , 的同时还试图将 , 放入单元格中。那是行不通的。您可以尝试使用:

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

然后更改您的 OS 区域设置,这样您的 Office 应用程序就会将 ; 识别为电子表格中的分隔符。否则,你必须在单元格

中去掉,

此外,至少对我来说,它会引发错误,因为您在定义列表时没有正确转义 ' 符号。我不得不将其更改为:

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

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