Python无法解码\ x字节

时间:2018-04-26 21:14:24

标签: pandas encoding

我有一个大约有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

1 个答案:

答案 0 :(得分:2)

错误消息中的'\xe9'不是字母后面的实际反斜杠,它只是文件中单个字节的表示。您的文件可能编码为Latin-1,而不是您指定的UTF-8。请改为指定'latin1'作为编码。