MySQL转储表或将表内容保存为python字典

omqzjyyz  于 2022-12-14  发布在  Python
关注(0)|答案(1)|浏览(217)

我有一个非常简单和小的数据库表,只有2列:Id和name。给定id,我必须找到并返回相应的name。我想将内容保存在字典中,并从中查找相应的值,而不是每次都查询数据库。我遇到过这个How to convert SQL query results into a python dictionary,但他们的目标是将每一行保存为一个dict,同时我认为我不需要字典列表,只需要一个带有键值对的dict。

def get_name(db_conn):
    cursor = db_conn.cursor()
    cursor.execute("SELECT id, name FROM table")
    rows = cursor.fetchall()
    d = {}
    for row in rows:
       id = row[0]
       name = row[1]
       d[id]= name
print(d)

考虑到我的任务,最好的方法是什么?

esbemjvw

esbemjvw1#

字典理解应该足够直接...

d = { row[0]: row[1] for row in cursor.fetchall() }

或者...

d = { id: name for (id, name) in cursor.fetchall() }

这将处理cursor.fetchall()中的每一行,并将key: value对直接生成到字典中。
它和你的循环非常相似,但是循环是在C中完成的,而不是在python中。

相关问题