如何在StopIteration之前停止在生成器上调用next

问题描述

我有一个调用API并产生数据的函数。后来我使用next()从生成器中检索数据,但是由于我不知道要“提取”多少数据,所以我最终执行next()直到它引起{{1} }例外。

StopIteration

这似乎是一种糟糕的方法。我有办法避免Try / Except块吗?想知道发电机已耗尽吗? (找不到更好的词

解决方法

StopIteration例外 是迭代器报告其完成情况的方式。不过,有一种更简单的方法可以遍历整个迭代器:

def parse_data():
    data = get_data()

    for row_data in data:
        print(row_data)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...