写入csv文件时,writerow因UnicodeEncodeError失败

Ete*_*ine 11 python csv exception-handling exception

我有这条线:

c.writerow(new_values)
Run Code Online (Sandbox Code Playgroud)

这会将许多值写入csv文件.通常它工作正常但有时会抛出异常并且不会在csv文件中写入该行.我不知道我怎么能找出原因.

这是我现在的异常处理:

        try:
            c.writerow(new_values)
        except:
            print()
            print ("Write Error: ", new_values)
Run Code Online (Sandbox Code Playgroud)

我评论了我自己的例外,它说:

    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>
Run Code Online (Sandbox Code Playgroud)

Ete*_*ine 20

好的,我自己解决了:

我只需要在我的csv.writer行添加",encoding ='utf-8'":

c = csv.writer(open("Myfile.csv", 'w',  newline='', encoding='utf-8'))
Run Code Online (Sandbox Code Playgroud)


小智 1

python 中的 csv 模块因不能很好地处理 unicode 字符而臭名昭著。除非所有字符都属于 ascii 编解码器,否则您可能无法写入该行。您可能需要研究一下名为 unicodecsv 的替代品(在某种程度上)下降。 https://pypi.python.org/pypi/unicodecsv