在异常出现后继续执行循环

3 投票
4 回答
525 浏览
提问于 2025-04-18 14:48
for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        id_twitty = item['id']
        count_ret = item['retweet_count']

如果 item['id'] 出现了 KeyError 错误,程序就会停止运行。

那么,怎么才能让 for 循环在出现错误后继续执行呢?

4 个回答

1

这段代码是用来处理一些特定功能的。它可能涉及到数据的输入、输出或者是一些计算。具体来说,代码块中的内容会根据不同的情况执行不同的操作。

如果你是编程新手,可以把这段代码想象成一个食谱。每一步都有它的目的,最终会帮助你完成一个特定的任务。只要按照步骤来,就能得到想要的结果。

记得在学习代码的时候,慢慢来,逐步理解每一部分的功能,这样才能更好地掌握编程的技巧。

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        id_twitty = item.get('id', None)
        count_ret = item.get('retweet_count', None)
        if not id_twitty or not count_ret:
            print "could not retrieve id or count"
            # handle error here
1

你可以先检查一下 item['id'] 这个东西是否存在:

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        if 'id' in item:
            id_twitty = item['id']
            count_ret = item['retweet_count']

如果它不存在,你可以用 None 来代替:

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        id_twitty = item.get('id')
        count_ret = item['retweet_count']

或者你也可以用其他的默认值来代替,如果它不存在的话:

default_id = 0

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        id_twitty = item.get('id', default_id)
        count_ret = item['retweet_count']
4

除了这种风格,你还可以使用的方式。如果在中找不到,你可以使用continue

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    elif 'id' not in item:
        continue
    else:
        id_twitty = item['id']
        count_ret = item['retweet_count']
5

你可以尝试捕捉到出现的 KeyError 错误,然后把它忽略掉:

for item in r.get_iterator():
    if 'retweeted_status' in item:
        print('aa')
    else:
        try:
            id_twitty = item['id']
            count_ret = item['retweet_count']
        except KeyError:
            pass

撰写回答