首页 > 解决方案 > 如何从python中记录的跳过

问题描述

我做了一个循环来计算单词列表中单词出现的次数。所以我使用以下代码:

for i in range(len(traindocs_clean)):
    for word in traindocs_clean[i][1][0]:
        if traindocs_clean[i][1] is None:
            continue
        wordDict[word]+=1

但我知道有些行的值为 null/NoneType/Blank,所以当我运行代码时,我会收到跟随错误

     for word in traindocs_clean[i][1][0]:
TypeError: 'NoneType' object is not subscriptable

我尝试使用关键字“继续”和“通过”来忽略这些记录并跳转到下一条,但显然它不起作用。我搜索了过去的评论和帖子,但我无法得到正确的答案,所以如果您认为已经有一些与此相同的帖子,请分享链接,否则如果您帮助我解决问题,我将不胜感激。谢谢你

标签: pythonpython-3.xerror-handlingnonetype

解决方案


您可以使用块处理异常try-except

for i in range(len(traindocs_clean)):
    try:
        for word in traindocs_clean[i][1][0]:
            wordDict[word] += 1
    except TypeError:
        pass

注意:最好不要使用 pass 和 log 或以适当的方式处理错误。

Usingtry-except的另一个优点是让您能够处理多个异常和/或在不同情况下运行不同的命令。例如,如果您的代码也容易出现,IndexError您可以执行以下操作:

    try:
        for word in traindocs_clean[i][1][0]:
            wordDict[word] += 1
    except (TypeError, IndexError):
        pass

或者,如果您想以IndexError另一种方式对待:

    try:
        for word in traindocs_clean[i][1][0]:
            wordDict[word] += 1
    except TypeError:
        pass
    except IndexError:
        # do something 

推荐阅读