【发布时间】:2016-07-05 08:46:39
【问题描述】:
我正在为我正在做的一个项目抓取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”。这是我的代码:
educ_employ = ([s.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:
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
>>>
我没有得到最后一个错误,但我也没有得到输出。我正在使用 Python 2.7。有谁知道如何解决这个问题?
【问题讨论】:
-
@mpez0 用于 Python 3,问题是关于 Python 2
-
@mpez0 抱歉,我无法理解发生了什么。
codecs代表什么?/我对编程很陌生,所以这有点过头了。 -
@otteheng 忽略它们:D 但是,如果您不是绝对需要使用 Python 2,我建议切换到 Python 3,它可以更轻松地处理文本/unicode。
-
@AnttiHaapala 感谢您的建议!
标签: python python-2.7