使用 .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'])
使用;
作为分隔符的结果:
写入 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'])
使用;
作为分隔符的结果: