出于某種原因,當我從 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
提交
取消