我有一个简单的函数来解析.csv,如下所示
def grabber3(datafile):
with open(datafile, 'rb') as f:
r =csv.DictReader(f)
for line in r:
del line['thisthing']
print line
这样就可以正确地打印出每条dict行,大约50行,例如
{'NetworkStatus': '1', 'ID': '1469'}
{'NetworkStatus': '1', 'ID': '1470'}
etc etc
但是,我想在调用函数时返回这个值,所以我将print语句改为
def grabber3(datafile):
with open(datafile, 'rb') as f:
r =csv.DictReader(f)
for line in r:
del line['thisthing']
return line
但它只返回第一行
{'NetworkStatus': '1', 'ID': '1469'}
如何返回循环的每一行/所有dict行,而不是只返回第一行?你知道吗
一种有效的方法是使用
yield
:然后在调用此函数的代码中,可以执行以下操作:
然后遍历这个
dict_generator
,如下所示:有关
yield
和生成器的更多信息,请参见:相关问题 更多 >
编程相关推荐