繁体   English   中英

用python 2.7编写包括unicode的csv文件

[英]write csv files including unicode with python 2.7

我正在使用csv模块将包含一些非ascii字符的大列表写入csv文件中。 我不断收到以下错误消息

UnicodeEncodeError: 'ascii' codec can't encode characters in position 48-50: ordinal not in range(128)

我不需要这些字符,因此可以忽略它们。 我尝试了在SOF上推荐的其他方法,但是到目前为止,它们都没有起作用(错误消息是相同的)。 有没有一种简单的方法来解决编码错误并继续进行? 我试过了:

io.open(file, encoding = "utf-8")
codecs.open(file, encoding = "utf-8")
codes.open(file, errors = "ignore")

我可以使用pandas模块将数据写入csv,只需设置encoding = "utf-8" 我可以在csv模块中做类似的事情吗?

对于Python 2.7,您应该使用unicodecsv模块: unicodecsv 0.9.4 这是Python内置的csv模块的替代品,并且确实支持Unicode。 在Python 3.x中,您不再需要此替换,因为Python 3.x在其csv模块中确实支持Unicode。

您可以通过运行以下命令进行安装:

pip install unicodecsv

您可以安装unicodecsv ,也可以使用csv writerCSV文件中写入时以utf-8格式写入行。

import csv
with open("sample.csv", "w") as wf:
    writer = csv.writer(wf)
    writer.writerow([unicode(s, "utf-8") for s in row])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM