【发布时间】:2010-04-27 17:21:25
【问题描述】:
我已经搜索了高和低的答案,以了解为什么以这种格式返回查询结果以及如何转换为列表。
data = cursor.fetchall()
当我打印数据时,它会导致: (('car',), ('boat',), ('plane',), ('truck',))
我希望将结果列在 ["car", "boat", "plane", "truck"]
【问题讨论】:
标签: python mysql list recordset
我已经搜索了高和低的答案,以了解为什么以这种格式返回查询结果以及如何转换为列表。
data = cursor.fetchall()
当我打印数据时,它会导致: (('car',), ('boat',), ('plane',), ('truck',))
我希望将结果列在 ["car", "boat", "plane", "truck"]
【问题讨论】:
标签: python mysql list recordset
它以这种方式返回它,因为记录集由多行数据组成,而不是单个元素的列表。
如果您想使用列表推导,可以将其展平:
data = [row[0] for row in cursor.fetchall()]
【讨论】:
fetchall() 的结果返回一个行数组,其中每一行是一个数组,每列一个值。
即使你只选择一列,你仍然会得到一个数组数组,但每一行只有一个值。
【讨论】:
x = (('car',), ('boat',), ('plane',), ('truck',))
y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck']
【讨论】: