我有一个大约有900万行的csv文件。在Python中处理它时,我收到了一个错误:
UnicodeEncodeError:'charmap'编解码器无法编码位置63中的字符'\ xe9':字符映射到未定义
原来这个字符串是 Beyonc \ xe9 。所以我想这就像是é。 我尝试在Python中打印'\ xe'但失败了:
>>> print('\xe')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-2: truncated \xXX escape
所以我甚至无法通过s.replace('\\x', '')
或s.strip('\\x')
替换或删除反斜杠。
有没有一种快速方法可以解决整个文件?我试着在读取文件时设置编码:
pandas.read_csv(inputFile, encoding='utf-8')
但它没有帮助。同样的问题。
Python版本:
python --version
Python 3.5.2
虽然我安装了3.6.5
Windows 10
更新
关注@Matti's answer我将pandas.read_csv()
中的编码更改为 latin1 ,现在字符串变为 Beyonc \ xc3 \ xa9 。并\xc3\xa9 is unicode for é。
这是失败的路线:
print(str(title) + ' , ' + str(artist))
title = 'Crazy In Love'
artist = 'Beyonc\xc3\xa9'
api来自lyricsgenius
答案 0 :(得分:2)
错误消息中的'\xe9'
不是字母后面的实际反斜杠,它只是文件中单个字节的表示。您的文件可能编码为Latin-1,而不是您指定的UTF-8。请改为指定'latin1'
作为编码。