ZeC*_*oca 0 python generator python-3.x
我有一个调用 API 并生成数据的函数。后来我用来next()从生成器中检索数据,但是由于我不知道有多少数据要“提取”,我最终会执行next()直到它引发StopIteration异常。
def get_data():
source = API_Instance()
yield source.get_some_data()
def parse_data():
data = get_data()
while True:
try:
row_data = next(data)
print(row_data)
except StopIteration:
break
Run Code Online (Sandbox Code Playgroud)
这似乎是一种糟糕的方法。有没有办法避免 Try/Except 块?像知道发电机已用尽的方法吗?(找不到更好的词来形容它)
该StopIteration例外是如何迭代器报告,它的完成。不过,有一种更简单的方法来循环整个迭代器:
def parse_data():
data = get_data()
for row_data in data:
print(row_data)
Run Code Online (Sandbox Code Playgroud)