python列表从数据库表变成字典

时间:2018-05-17 09:26:19

标签: python sqlite tkinter

我正在尝试更改项目表中的列表,并将价格转换为字典以便于使用,但仍然无法使用 我想要像名字一样关键,价格像字典形式的价值

这是从数据库中读取的代码

def items():
    cur.execute("SELECT name,price FROM items")
    return cur.fetchall()

我需要像这样分开

 Items = {'mobile': 100.80,'projecter': 450.45,'canon': 350.65}

任何帮助,请

4 个答案:

答案 0 :(得分:1)

dict()构造函数接受带有key, value对的迭代,cursor.fetchall()产生完全相同,因此您需要做的就是使用返回的结果实例化dict

def items():
    cur.execute("SELECT name,price FROM items")
    return dict(cur.fetchall())

答案 1 :(得分:0)

这样的事情可以解决问题:

items = {}
for row in cur.fetchall():
    items[row[0]] = row[1]

显然,您必须在访问行元组时自己选择正确的索引。

答案 2 :(得分:0)

您可以尝试这样,您的结果对象将像元组或列表的列表,因为您想要两个返回两个值,您可以尝试dict理解:

items = {row[0]:row[1] for row in cur.fetchall()}

答案 3 :(得分:0)

Items = {} 
for item in items():
    Items[item[0]] = item[1]

可以这样做,因为fetchall返回一个元组列表,元组按顺序排列值。