我正在连接到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上显示的行,但它没有帮助。
答案 0 :(得分:0)
由mgilson发布,data = map(data._make, c.fetchall())
需要更改为data = list(map(data._make, c.fetchall()))
。