首页 > 解决方案 > 数据库中的两列并转换为字典

问题描述

我正在尝试从 MySQL 数据库中的两列创建字典。在我的第一次尝试中,我提取了两个列表并将它们压缩在一起以创建一个 python 字典。

由于我认为列表保持顺序,我假设这两个列表在顺序方面会匹配,并且 url 将与字典中的特定播放器相关,但情况似乎并非如此

我的代码是:

#extract a player list from db
cur.execute("SELECT full_name FROM player")
player_names_two = cur.fetchall()
player_name_list_two = [row[0] for row in player_names] #convert to list

#exctract url list from same table in db
cur.execute("SELECT real_gm_profile FROM player")
profile_urls = cur.fetchall()
profile_urls_list = [row[0] for row in profile_urls]


#player and url dict
team_player_dic = dict(zip(player_name_list_two, profile_urls_list))

然后我想使用字典检查详细信息并更新我的数据库,这一切正常,尽管 URL 与播放器不匹配,因此目前更新不正确。

有没有更好的方法来确保键值正确匹配?

谢谢

标签: mysqlsqlpython-3.x

解决方案


在单个查询中获取full_name&然后使用字典理解real_gm_profile

前任:

#extract a player list from db
cur.execute("SELECT full_name, real_gm_profile FROM player")
result_set = cur.fetchall()
team_player_dic = {row["full_name"]: row['real_gm_profile'] for row in result_set}   # OR {row[0]: row[1] for row in result_set}

推荐阅读