Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符u'\u0627';位置0:序号不在范围内(128)

Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符u'\u0627';位置0:序号不在范围内(128),python,csv,export-to-csv,python-2.x,Python,Csv,Export To Csv,Python 2.x,当我试图将数据保存在csv文件中时,标题中出现了错误,我不知道如何修复 # -*- coding: utf-8 -*- keys = sorted(self.Details.keys()) #### 1st sort the values of dictionary list with open("test.csv", "wb") as outfile: writer = csv.writer(outfile, delimiter = "\t") writer.w

当我试图将数据保存在csv文件中时,标题中出现了错误,我不知道如何修复

# -*- coding: utf-8 -*-
keys = sorted(self.Details.keys())     #### 1st sort the values of dictionary list
with open("test.csv", "wb") as outfile:    
    writer = csv.writer(outfile, delimiter = "\t")
    writer.writerow(keys)
    writer.writerows(zip(*[self.Details[key] for key in keys]))

写入时,
csv
的默认值为ascii,但数据中的字符串不是ascii,因此如果您使用的是python3,请尝试:

with open("test.csv", "wb", encoding='utf-8')

如果您使用的是python2,您可以尝试这个包
unicodesv

我确实这样做了,但是得到了这个错误,告诉我编码不是函数参数TypeError:“encoding”是这个函数的无效关键字参数听起来像是在使用python2。如果可以,请切换到python3——从今年年初开始,Python2不再受支持:@OmarKamelMostafa
encoding
是python3中的一个参数。如果您使用的是python2,那么可以使用unicodesv:到底是什么问题?错误消息会准确地告诉您出了什么问题,您是否尝试过任何方法或进行过任何研究?此外,您的代码过于复杂。如果您的数据在字典中,只需使用
csv.DictWriter
。Python 2在8天前正式停产。我建议您切换到Python3,因为解决这个问题的方法是很简单的。