UnicodeDecodeError:“ascii”编解码器无法解码位置0中的字节0xa0:序号不在范围内(128)

2024-10-03 09:07:53 发布

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

我正在为我正在做的一个项目抓取Oregon Teacher License data。我的代码是:

educ_employ = tree.xpath('//tr[15]//td[@bgcolor="#A9EDFC"]//text()')
print educ_employ
#[u'Jefferson Middle School\xa0\xa0(2013 - 2014)']

我想把“\xa0”去掉。这是我的代码:

^{pr2}$

我试了this

educ_employ = ([s.decode('utf-8').strip('\xa0') for s in educ_employ])
print educ_employ
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)

this

import sys

reload(sys)
sys.setdefaultencoding('utf-8')

educ_employ = tree.xpath('//tr[15]//td[@bgcolor="#A9EDFC"]//text()')
educ_employ = ([s.decode('utf-8').strip('\xa0') for s in educ_employ])
print educ_employ
>>>

我没有得到上一个错误,但我也没有得到一个输出。我使用的是python2.7。有人知道怎么解决这个问题吗?在


Tags: 代码intreesysxpathtrutftd
1条回答
网友
1楼 · 发布于 2024-10-03 09:07:53

您混淆了unicode对象和str对象。educ_employunicode,但是{}是str。在

另外,.strip()只删除字符串开头和结尾的字符,而不是中间的字符。请改为尝试.replace()。在

尝试:

educ_employ = [u'Jefferson Middle School\xa0\xa0(2013 - 2014)']
educ_employ = [s.replace(u'\xa0', u'') for s in educ_employ]
print educ_employ

相关问题 更多 >