用Python将集合写入csv文件

5
这是我的设置:
set(['description', 'title'])

我需要将这个写入到一个包含2列的csv文件中。 我的代码:

cw = csv.writer(open("hello.csv",'w'))
cw.writerows(cols)

抛出一个错误:

cw.writerow(cols)
_csv.Error: sequence expected

向 csv 文件中添加列表:

cw.writerow(list(cols))
for row in data:
    cw.writerow([str(row.get(k,'N/A')) for k in cols])

发现一种纠正这个问题的方法:以wb模式打开文件而不是w模式。

你的代码示例和错误不匹配。你是在使用单数的 writerow 还是复数的 writerows - Martijn Pieters
让我们在这里使用术语“写入”,而不是打印。 :-) 如果您有一组集合,则需要处理每个集合。 - Martijn Pieters
1
这是因为您试图将Unicode值转换为字符串,而没有明确地对其进行编码。请明确地进行编码:cw.writerow([row.get(k,u'N/A').encode('utf8') for k in cols])。这假设UTF8编码适合您的需求。 - Martijn Pieters
非常感谢你。但是它把所有内容都打印在一行上。 - blackmamba
1
你能否为新问题开一个新的提问?你原来的问题已经解决了,Stack Overflow不适合交互式调试会话。你也可以进入Python聊天室获取更多交互式帮助。 - Martijn Pieters
显示剩余2条评论
1个回答

7

首先将您的集合转换为列表:

cw.writerow(list(cols))

请注意,列的书写顺序是任意的;与字典一样,集合没有固定的顺序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接