我有一句话:
c.writerow(new_values)
将许多值写入csv文件。通常它工作正常但有时会抛出异常并且不会在csv文件中写入该行。我不知道如何找出原因。
这是我现在的异常处理:
try:
c.writerow(new_values)
except:
print()
print ("Write Error: ", new_values)
我评论了我自己的例外,它说:
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u03b1' in position 14: character maps to <undefined>
答案 0 :(得分:18)
好的,我自己解决了这个问题:
我只需要将“,encoding ='utf-8'”添加到我的csv.writer行:
c = csv.writer(open("Myfile.csv", 'w', newline='', encoding='utf-8'))
答案 1 :(得分:0)
python中的csv模块因为不能很好地处理unicode字符而臭名昭着。除非所有字符都落在ascii编解码器中,否则您可能无法写入该行。你可能想要研究一下(有点)代替unicodecsv的替代品。 https://pypi.python.org/pypi/unicodecsv