出于某种原因,当我从 sqlite3 中的 SELECT 语句产生时,我无法遍历表中的所有行。当我将结果作为列表返回时,我拥有所有行。我不确定我做错了什么......如果我在外面的某个地方使用它,下面的代码只产生单行:def items(self): for row in self._cursor.execute('SELECT key, value FROM dict_table'): yield (self.loads(row[0]), self.loads(row[1]))如果我将返回值包装为一个列表,我会得到所有的行:def iteritems(self): for row in self._cursor.execute('SELECT key, value FROM dict_table'): yield (self.loads(row[0]), self.loads(row[1]))def items(self): return(list(self.iteritems()))理想情况下,我只想将它用作生成器,而不是获取整个列表def items(self): for row in self._cursor.execute('SELECT key, value FROM dict_table'): yield (self.loads(row[0]), self.loads(row[1]))在代码的其他地方,我只想能够运行:for key, val in self.items(): print(val/key)编辑:我也尝试了以下解决方案但没有成功def iteritems(self): for row in self._cursor.execute('SELECT key, value FROM dict_table'): yield (self.loads(row[0]), self.loads(row[1]))def items(self): yield from (self.iteritems())当我尝试迭代项目时,它仍然返回 1 行
添加回答
举报
0/150
提交
取消