Pandas Python可以';t解码\x字节

Pandas Python可以';t解码\x字节,pandas,encoding,Pandas,Encoding,我有一个csv文件,大约有900万行。在Python中处理时,我遇到了一个错误: UnicodeEncodeError:“charmap”编解码器无法对位置63中的字符“\xe9”进行编码:字符映射到未定义 结果显示字符串为Beyonc\xe9。所以我猜这有点像。 我尝试用Python打印“\xe”,但失败了: >>> print('\xe') File "<stdin>", line 1 SyntaxError: (unicode error) 'unicod

我有一个csv文件,大约有900万行。在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
但这没用。同样的问题

Python版本:

python --version
Python 3.5.2
虽然我安装了

视窗10

更新:

接下来,我将pandas.read_csv()中的编码更改为latin1,现在字符串变成了Beyonc\xc3\xa9。和

这是失败的一行:

print(str(title) + ' , ' + str(artist))

title = 'Crazy In Love'
artist = 'Beyonc\xc3\xa9'

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

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

现在显示
UnicodeEncodeError:“charmap”编解码器无法对37-38位置的字符进行编码:字符映射到
,而不提及有问题的字符串。但是我发现字符串现在是Beyonc\xc3\xa9Ok我发现\xc3\xa9确实是unicode foré如果我正确地阅读了这些错误消息,您的文件将被破坏,因为它似乎使用了多种编码的混合。使用
'latin1'
编码至少可以让您读取它(拉丁语-1中没有无效的字节序列),假设您使用的任何库都支持标准Python编码。不过,有些字符可能会被错误解码。很抱歉,我不是说它在
read\u csv()
上失败。这两种方法都有效(
utf-8
/
latin1
)。我添加了失败的行。请查看后面的updatePut
utf-8
,因为这就是您的文件所在。您能否发布错误的完整堆栈跟踪,以便我们看到哪个函数实际上失败了?现在它显示为
UnicodeEncodeError:“charmap”编解码器无法对37-38位置的字符进行编码:字符映射到
,而不提有问题的字符串。但是我发现字符串现在是Beyonc\xc3\xa9Ok我发现\xc3\xa9确实是unicode foré如果我正确地阅读了这些错误消息,您的文件将被破坏,因为它似乎使用了多种编码的混合。使用
'latin1'
编码至少可以让您读取它(拉丁语-1中没有无效的字节序列),假设您使用的任何库都支持标准Python编码。不过,有些字符可能会被错误解码。很抱歉,我不是说它在
read\u csv()
上失败。这两种方法都有效(
utf-8
/
latin1
)。我添加了失败的行。请查看后面的updatePut
utf-8
,因为这就是您的文件所在。您能否发布错误的完整堆栈跟踪,以便我们看到哪个函数实际上失败了?
print(str(title) + ' , ' + str(artist))

title = 'Crazy In Love'
artist = 'Beyonc\xc3\xa9'