为什么记录集结果以这种方式返回用于Python数据库查询?
问题描述:
我搜索了高和低的答案,为什么查询结果以这种格式返回以及如何转换为列表。为什么记录集结果以这种方式返回用于Python数据库查询?
数据= cursor.fetchall()
当我打印的数据,将会导致: (( '车',),( '船',),( '平面'),('卡车”,))
我想在列表中的结果[‘汽车’,‘船’,‘飞机’,‘卡车’]
答
它返回它以这种方式,因为记录集由多行数据组成,而不是单个元素的列表。
你可以,如果你想使用一个列表理解压平:
data = [row[0] for row in cursor.fetchall()]
答
x = (('car',), ('boat',), ('plane',), ('truck',))
y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck']
答
的使用fetchall结果()返回行,每行与每列的值一个数组的数组。
即使您只选择一列,仍然会得到一个数组数组,但每行只有一个值。
辉煌......谢谢! – Scott 2010-04-27 17:28:06