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



我有一个非常简单和小的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中原生完成的。

最新更新