【发布时间】:2014-12-19 07:13:52
【问题描述】:
This question in stack overflow 回答了如何使用 pymysql 从表中获取字典。但是,此方法将列标题作为键输出,将其值作为该列中的数据输出。
将实际数据作为键和值的最佳方式是什么?
例如:
Name |Age
-------------
John |25
Tom |45
Tammy |18
我想要
{John:25, Tom:45, Tammy:18}
不是
[{Name:John},{Age:25},....]
这就是我现在拥有的:
def name2dict(name_list):
name_list_tuple = tuple(name_list)
conn = pymysql.connect()
cur = conn.cursor(pymysql.cursors.DictCursor)
Name2pos = """SELECT Tables.ID, Tables.Position FROM Tables where Tables.Name in %s"""
cur.execute(Name2pos, [name_list_tuple])
query_dict = cur.fetchall()
cur.close()
conn.close()
return query_dict
【问题讨论】:
-
如果您的查询是“SELECT name, age FROM some_table”(例如:它返回两列 - 所以不要使用 cursordict),那么只需使用
dict(your_cursor_that_executes_the_query)您能显示您当前的代码吗? -
对不起,您当前的字典结构是什么?它是一个字典列表,其中每个字典都包含名称和年龄键吗?或者它是一个字典列表,都只有一个键,有时是“姓名”,有时是“年龄”?还是别的什么?
-
哇不明白为什么这应该投反对票? @Joe,我刚刚添加了代码。而且,我认为您的建议应该有效。谢谢
-
@msakya 没有意识到我已经把我的名字改成了 Joe :) - 无论如何,稍微调整你的代码,只要你得到一个 2 元组序列,将它传递给 @ 987654327@ 应该如你所愿
-
哦,我的坏乔恩。真对不起。乔恩听起来更好。