我有三个列表,我想创建一个csv文件

时间:2020-08-08 16:16:34

标签: python list

我有三个列表,分别是姓名,艺术家和专辑。我想创建一个csv,使每个元素的第一个元素排成一行,然后在其他元素中排成下一个,依此类推。

例如。

names = ['Tell Me It's Okay', 'Cry', Oblivion']
albums = ['Tell Me It's Okay', 'Cry', 'Oblivion']
artists = ['Fell', 'Gryffin', 'Alex']

我想要csv中的输出为

告诉我没事,告诉我没事

哭泣,哭泣,格兰芬

Oblivion,Oblivion,Alex

2 个答案:

答案 0 :(得分:1)

您的列表包含无效的字符串。如果字符串中包含单引号('),则需要使用双引号(“)将字符串包装起来。

您可以尝试:

with open("xxx.csv", 'w') as fp:
fp.write("header1,header2")
for lst in [list1, list2, list3]:
    fp.write(','.join(fp))

第二行输入您可以编辑的每一行的标题。 list1,list2和list3是您拥有的列表。 xxx应该替换为您想要的csv文件的名称

答案 1 :(得分:1)

您可以将这些列表压缩在一起以使其起作用。像这样:

names = ['Tell Me It\'s Okay', 'Cry', 'Oblivion']
albums = ['Tell Me It\'s Okay', 'Cry', 'Oblivion']
artists = ['Fell', 'Gryffin', 'Alex']

data = [','.join(record) for record in zip(names, albums, artists)]
with open('output.csv','w') as f:
    f.write('\n'.join(data))