我有以下示例列表:
sample_list = [['test1', 'test2'], ['am', 'cm']]
我想将上面的列表写入csv
文件。我使用以下代码:
with open('sample.csv', 'wb') as f_csv:
writer = csv.writer(f_csv, delimiter=',', dialect='excel')
writer.writerows(sample_list)
f_csv.close()
问题在于,当我打开sample.csv
时,我发现test1
,test2
存储在不同的列中,am
,cm
相同(已存储)在下一行)
我需要以下列形式输出:每个子列表在单独的行中列出,子列表的元素在一列中列出。
test1,test2
am,cm
请问我能在哪里出错。
答案 0 :(得分:3)
如果列表值的类型为{,则需要更改列表以在转换后的字符串内容中包含逗号,
作为值 {1}},转换它们,然后从列表中创建字符串:
int
如果我们在原始列表中添加一个数字,那么:
sample_list = [[",".join([str(item) for item in sub])] for sub in sample_list]
列表理解后,列表的格式为:
sample_list = [['test1', 'test2', 392], ['am', 'cm']]
然后,在此列表列表中调用sample_list = [['test1,test2,392'], ['am,cm']]
:
writerows()
with open('sample.csv', 'wb') as f_csv:
writer = csv.writer(f_csv, delimiter=',', dialect='excel')
writer.writerows(sample_list)
中的输出格式为:
sample.csv
P.s你不需要关闭"test1,test2,392"
"am,cm"
。将其与f_csv
关键字一起使用会自动处理。
答案 1 :(得分:0)