从SQl数据库中提取项目并分配给变量

时间:2013-07-05 20:39:01

标签: python database qt sqlite

我创建了一个小型数据库,我希望从每个字段中提取每个项目! 简单地说,我希望能够在UI(Ot.Gui)中显示项目,我能想到的唯一方法是将项目分配给1到1的变量。 第1行,第1行到最后一行的最后一行值。

目前,我正在使用

import sqlite3 as lite
con = lite.connect('Bestellung.db')    
with con:
    con.row_factory = lite.Row
    cur = con.cursor() 
    cur.execute("SELECT * FROM Bestellung")
    rows = cur.fetchall()

    for row in rows:
        print "%s %s %s" % (row["Id"], row["ArtikelNr"], row["Beschreibung"])

从数据库中提取并打印所有信息:(仅6个值atm)

1 a1 b1
2 a2 b2

但现在我想创建一个自动为每个项创建变量的函数或模块。这样:

Row 1, Value 1 = Row1Val1
Row 1, Value 2 - Row1Val1
...

然后我可以使用它来设置TextLabels。

除非你有更简单的方法来解决我的问题。

提前感谢

2 个答案:

答案 0 :(得分:0)

看看namedtuple,他们非常适合这类任务。

答案 1 :(得分:0)

我不确定我是否理解你的问题。是否要动态迭代列而不明确指定列名(这就是我所理解的)。如果是,那么这应该可以帮到你:

with lite.connect('bestellung.db') as con:
    con.row_factory = lite.Row
    cur = con.cursor() 
    cur.execute("SELECT * FROM Bestellung")
    rows = cur.fetchall()

    rowcount = 1
    for row in rows:
        colcount = 1
        for key in row.keys():
            value = row[key]
            print "Row %d, Value %d = %s" % (rowcount, colcount, value)
            colcount += 1
        rowcount += 1

如果没有,那就没关系,我会删除这个答案。