我遇到了问题:
slots = rows[i].find_elements_by_tag_name('td')
prodFolder = slots[0].text
prodType = slots[2].text
prodId = slots[1].text
values = [prodFolder, prodId, prodType]
print values
当我去打印值时,我在列表中每个项目的前面都会得到一个额外的字符:
[u' active_e',u' 1193',u' Active E']
这可能是.text提供一些我不想要的额外数据的结果。有没有一种优雅的方法来解决这个问题? (不使用蛮力去除额外的你的?)
答案 0 :(得分:5)
'u'
中的u'active_e'
只表示这是一个unicode
对象,而不是字节字符串。您可以使用encode
转换它:
> u = u'active_e'
> s = u.encode('utf-8')
> u
u'active_e'
> s
'active_e'
# But:
> print(u)
active_e
> print(s)
active_e
> type(u)
<type 'unicode'>
> type(s)
<type 'str'>
但在大多数情况下,unicode
对象与字节串一样精细。对于纯ASCII字符串,即使u == s
也是True
:
> u == s
True
# careful with non-ascii chars:
> u = u'äöüß'
> s = u.encode('utf-8')
> u == s
False
> len(u)
4
> len(s)
8 # ä,ö,ü,ß have two-byte representations