已成功将数据中的\n投票替换为“ ”,但无法执行两次来删除\n投票

问题介绍 语言版本:Python 3.8 操作系统:Windows 10 其他相关软件:Jupyter Notebook 和 requests-html

我正在尝试从堆栈溢出教程中清理一些已解析的 html 。我成功地将“3\nvotes”替换为“3”。然而,对于有 1 票的帖子,其结果仍然是“1/nvote”。我尝试更换

def clean_scraped_data(text, keyname=None):

    if keyname == 'votes':

        return text.replace('\nvotes', '')

        if '\nvote'in text:

            return text.replace('\nvote', '')

    if keyname == 'summary':

        return text.replace('\nvotes', '')

    return text

我已经尝试过的其他事情:


def clean_scraped_data(text, keyname=None):

    if keyname == 'votes':

        return text.replace('\nvotes', '')

        if text == '1\nvote':

            return text.replace('\nvote', '')

    if keyname == 'summary':

        return text.replace('\nvotes', '')

    return text

预期结果是“1 票”实际结果:


1\nvote

我预计 1 票,但收到 1/nvote


我确实认为我这样做是正确的,并且不知道我的错误或任何其他版本的尝试。有什么建议吗?


白猪掌柜的
浏览 106回答 1
1回答

阿波罗的战车

您可以使用正则表达式从文本中删除所有非数字字符,而不是删除vote//的某些组合:votes\nvotesimport redef clean_scraped_data(text, keyname=None):    if keyname == 'votes' or keyname == 'summary':        return re.sub("[^0-9]", "", text)    return text
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python