为什么记录集结果以这种方式返回用于Python数据库查询?

问题描述:

我搜索了高和低的答案,为什么查询结果以这种格式返回以及如何转换为列表。为什么记录集结果以这种方式返回用于Python数据库查询?

数据= cursor.fetchall()

当我打印的数据,将会导致: (( '车',),( '船',),( '平面'),('卡车”,))

我想在列表中的结果[‘汽车’,‘船’,‘飞机’,‘卡车’]

它返回它以这种方式,因为记录集由多行数据组成,而不是单个元素的列表。

你可以,如果你想使用一个列表理解压平:

data = [row[0] for row in cursor.fetchall()] 
+0

辉煌......谢谢! – Scott 2010-04-27 17:28:06

x = (('car',), ('boat',), ('plane',), ('truck',)) 

y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck'] 

的使用fetchall结果()返回行,每行与每列的值一个数组的数组。

即使您只选择一列,仍然会得到一个数组数组,但每行只有一个值。