首页 > 解决方案 > 删除 \xa0 并仅修改数字

问题描述

我编写了一个使用 bs4 提取表格的程序,该程序的一部分包含从单元格中提取文本并将其修改为数组我收到了以下输出,我想删除所有 \xa0,我也想保存只是最终数组中的数字(这里是 stmat),例如,我只想要“74°F”中的“74”我可以得到上述 2 个问题的答案下面只是用于修正的 for 循环

    for row in stat_table.find_all('tr') :
        for cell in row.find_all('td'):
            print(cell.text)
            stmat.append(cell.text)
            count = count + 1
            m = m+1
            print(count)        
     print(stmat)
     n = count/10

我有以下修改矩阵的输出

['8:30 PM', '73\xa0F', '72\xa0F', '96\xa0%', 'SW', '9\xa0mph', '0\xa0mph', '29.35\xa0in', '0.0\xa0in', 'Cloudy', '12:30 AM', '73\xa0F', '71\xa0F', '95\xa0%', 'WSW', '9\xa0mph', '0\xa0mph', '29.35\xa0in', '0.0\xa0in', 'Cloudy', '3:30 AM', '74\xa0F', '73\xa0F', '95\xa0%', 'SE', '6\xa0mph', '0\xa0mph', '29.39\xa0in', '0.0\xa0in', 'Mostly Cloudy', '5:30 AM', '78\xa0F', '76\xa0F', '92\xa0%', 'SW', '7\xa0mph', '0\xa0mph', '29.40\xa0in', '0.0\xa0in', 'Cloudy', '8:30 AM', '79\xa0F', '75\xa0F', '87\xa0%', 'SW', '9\xa0mph', '0\xa0mph', '29.34\xa0in', '0.0\xa0in', 'Mostly Cloudy', '11:30 AM', '77\xa0F', '75\xa0F', '93\xa0%', 'SW', '6\xa0mph', '0\xa0mph', '29.33\xa0in', '0.0\xa0in', 'Cloudy', '2:30 PM', '76\xa0F', '75\xa0F', '96\xa0%', 'SW', '3\xa0mph', '0\xa0mph', '29.38\xa0in', '0.0\xa0in', 'Mostly Cloudy', '5:30 PM', '76\xa0F', '74\xa0F', '95\xa0%', 'SW', '7\xa0mph', '0\xa0mph', '29.41\xa0in', '0.0\xa0in', 'Mostly Cloudy', '8:30 PM', '73\xa0F', '72\xa0F', '96\xa0%', 'SW', '9\xa0mph', '0\xa0mph', '29.35\xa0in', '0.0\xa0in', 'Cloudy', '12:30 AM', '73\xa0F', '71\xa0F', '95\xa0%', 'WSW', '9\xa0mph', '0\xa0mph', '29.35\xa0in', '0.0\xa0in', 'Cloudy', '3:30 AM', '74\xa0F', '73\xa0F', '95\xa0%', 'SE', '6\xa0mph', '0\xa0mph', '29.39\xa0in', '0.0\xa0in', 'Mostly Cloudy']

标签: pythonarrays

解决方案


由于这似乎是 unicode 数据,您应该按照NFKC标准对其进行规范化。那是因为\xa0字符代表一个不间断的空格。当我们执行chr(160)which returns时,我们可以看到这一点'\xa0'

import unicodedata

stmat.append(unicodedata.normalize("NFKC", cell.text))

推荐阅读