blob: cd9f069a17ebb0d9899915e6f2c3016b88a132c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# easydb.py
from operator import itemgetter
from collections import namedtuple # for Python >= 2.6
def get_table_from_db(cursor, query_templ, query_args=(), ntuple=None):
if query_args:
cursor.execute(query_templ, query_args)
else:
cursor.execute(query_templ)
rows = cursor.fetchall()
fields = map(itemgetter(0), cursor.description)
Ntuple = ntuple or namedtuple('DBTuple', fields)
yield Ntuple(*fields)
for row in rows:
yield Ntuple(*row)
if __name__ == '__main__': # test
from sqlite3 import dbapi2
conn = dbapi2.connect(':memory:')
conn.execute('create table test(id integer, descr varchar)')
conn.execute("insert into test values (1,'one')")
conn.execute("insert into test values (2,'two')")
for rec in get_table_from_db(conn.cursor(), 'select * from test'):
print rec
|