从SQLite Query中获取Iterator Tuple

时间:2016-12-23 05:02:36

标签: python sqlite namedtuple

我正在连接到SQLite数据库。在python中查询数据库时,它返回一个元组对象。我更喜欢与namedtuple合作。问题是我不能多次遍历对象。我不确定问题是否与我创建对象的方式有关,或者是否与我如何将数据分配给对象有关。这就是我所拥有的:

import sys
import sqlite3
from collections import namedtuple

data = namedtuple('data', 'id, name')
conn = sqlite3.connect('database.db')
c = conn.cursor()

c.execute('SELECT id,name FROM my_table;')
data = map(data._make, c.fetchall())
conn.close()

for id in data: 
    print (table.id)

for id in data:
    print (table.id)

>>>123
>>>456
>>>789

目前表格中只有3个条目。所以我应该重复所有3个条目,因为第二个循环,但我不是。

我已尝试更改某些行,类似于Docs page上显示的行,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

mgilson发布,data = map(data._make, c.fetchall())需要更改为data = list(map(data._make, c.fetchall()))