我有一些Unicode变量。在
title
u'\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430'
type(title)
unicode
如果我打印这个值,我会得到:
^{pr2}$当我试图将此数据(西里尔文符号)写入CSV文件时:
with open('avito.csv','a') as f:
writer=csv.writer(f)
writer.writerow((title))
出现此错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0410' in position 0: ordinal not in range(128)
如何将此变量作为西里尔文符号写入CSV?在
你必须用正确的编码写入文件,从你的评论来看,它是
cp1251
:Python2.7上的三种方法。请注意,要在Excel中打开文件,该程序类似于在文件开头编码的UTF-8bom。我用brute-force方法手动编写,但是
utf-8-sig
编解码器将为您处理它。如果不使用lame编辑器(Windows记事本)或Excel,请跳过BOM签名。在相关问题 更多 >
编程相关推荐