我正在抓取第二列中具有更多信息的两列表。

state    | count  | pct
Florida  | 1 (1)  | 0.5
Colorado | 10 (<1)| 1.0


运行脚本时,通常会得到以下变化:

1 \xa0\xa0\xa0\xa0\xa0(<1)


要么

10 \xa0\xa0\xa0\xa0\xa0(10)


对于第二个单元格。

我只对第一个数字感兴趣,因此BeautifulSoup的输出看起来像:

 [[u'Florida', u'1'], [u'Colorado', u'10']]


这样的事情可能吗?

最佳答案

假设您有rows

>>> rows = [
...     [u'Florida', u'1 \xa0\xa0\xa0\xa0\xa0(1)'],
...     [u'Colorado', u'10 \xa0\xa0\xa0\xa0\xa0(<1)']
... ]


拆分count并获得第一部分:

>>> rows = [[state, count.split()[0]] for state, count in rows]
>>> rows
[[u'Florida', u'1'], [u'Colorado', u'10']]

08-27 09:07