我有一个非常简单和小的db表只有2列:Id和名称。给定id,我必须找到并返回相应的名称。我想将内容保存在字典中,并从那里寻找相应的值,而不是每次查询数据库。我遇到了这个如何将SQL查询结果转换为python字典,但他们的目标是将每一行保存为字典,而我认为我不需要字典列表,只是一个具有键值对的字典。
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)
对于我的任务,最好的方法是什么?
字典理解应该足够直接…
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中原生完成的。