python - 如何将 Unicode 数据作为西里尔字母符号写入文件?

标签 python python-2.7 csv unicode

我有一些 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

如果我打印此可用信息,我会得到:

 print (title)

  Администратор интернет-магазин

当我尝试将此数据(西里尔字母符号)写入 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:

 import io
 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'
 with io.open('avito.csv', 'a', encoding='cp1251') as output:
     output.write(title + '\n')

关于python - 如何将 Unicode 数据作为西里尔字母符号写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43076196/

相关文章:

PHP 将 MySQL 导出为 CSV - 结果显示为 HTML

jquery - 如何调用django模板以便通过Jquery使用它?

Python:类型化方法参数

python - Pandas series.rename 给出 TypeError : 'str' object is not callable error

python - 如何在使用 python 调度模块与共享作业队列并行执行作业时传递参数

sql-server - 在 ssis 中导出到 csv 时包括前导零

matlab - 文件内容格式不同时如何使用 "csvread"?

python - 设置单个值时如何避免SettingWithCopyWarning?

python - 如何以匀称的方式(或更好的库)创建带弧的多边形

python 2.7.5+ 打印列表,逗号后没有空格