当写入csv文件时,writerow在UnicodeEncodeE中失败

2024-04-23 08:54:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有电话:

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>

Tags: 文件csvnew情况原因encodewrite电话
2条回答

python中的csv模块因不能很好地处理unicode字符而臭名昭著。除非所有字符都在ascii编解码器中,否则可能无法写入行。有一个叫做unicodecsv的替代品(有点)下降了,您可能需要调查一下。https://pypi.python.org/pypi/unicodecsv

好吧,我自己解决了:

我只需要在csv.writer行中添加“encoding=”utf-8“:

c = csv.writer(open("Myfile.csv", 'w',  newline='', encoding='utf-8'))

相关问题 更多 >