假设我有这段代码:
sql_query="select actor.actor_id from actor where actor='%s'"
cursor.execute=(sql_query,(actorID))
result=cursor.fetchall()
return(result)
我应该对我的代码做什么,以便结果采用元组列表的形式?我还希望第一个元组成为查询列的名称。
For example: [(“Name”, “Id”,),(“Jim”,7,),(“Tom”,13,)]
答案 0 :(得分:1)
以下是一个示例示例:
cur.execute('''SELECT * FROM patient_login''')
results = cur.fetchall()
nested_tuple_list = []
for result in results:
nested_tuple_list.append(result)
print(nested_tuple_list)
如您所见,我们使用cur.execute()输入select语句。我们获取所有结果并将它们存储在变量结果中。我们运行for循环,每个结果都是我们DB中结果的元组。然后我们将它们附加到列表的末尾。当我们打印结果时,这是输出:
[(4, 'sikudabo', 'monkey1'), (83, 'sikudabo2', 'monkey2')]
我们最终得到了一个元组列表。
答案 1 :(得分:1)
这是另一个简单的抓取列名并将它们存储在嵌套元组中的答案:
cur.execute('''DESCRIBE patient_login''')
results = cur.fetchall()
nested_tuple_list = []
nested_tuple_list_2 = []
for result in results:
result = ((result[0]))
nested_tuple_list.append(result)
nested_tuple_list = tuple(nested_tuple_list)
nested_tuple_list_2.append(nested_tuple_list)
print(nested_tuple_list_2)
SQL中的describe命令将通过告诉您表中存在哪些列以及表的各种特征(如主键,数据类型等)来描述该表。此命令将返回所描述数据的元组。在这里,我们搜索每个结果并获取每个嵌套元组的结果中的第一个索引。第一个索引对应于for循环中的列名。我们可以将其附加到第一个空列表中。在我们追加所有列名后,我们将列表更改为元组。然后,我们将该元组附加到列表中,并将列表中的所有列名称放在元组中。这是输出:
[('ID', 'username', 'password')]
如果您希望列表中的每个元素都是其自身的元组,则代码如下:
nested_tuple_list = tuple(nested_tuple_list)
nested_tuple_list_2 = [(x,) for x in nested_tuple_list]
print(nested_tuple_list_2)
我们可以用x代表每一列进行列表理解,这是我在DataFrame中每个列的输出:
[('ID',), ('username',), ('password',)]