为什么Python数据库查询返回的记录集结果是这样?
我到处寻找答案,想知道为什么查询结果会以这种格式返回,以及如何把它转换成一个列表。
data = cursor.fetchall()
当我打印data时,结果是: (('car',), ('boat',), ('plane',), ('truck',))
我想要的结果是一个列表,像这样 ["car", "boat", "plane", "truck"]
3 个回答
0
x = (('car',), ('boat',), ('plane',), ('truck',))
y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck']
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
1
fetchall()的结果会返回一个行的数组,每一行又是一个数组,里面包含每一列的一个值。
即使你只选择了一列,返回的结果仍然是一个数组的数组,但每一行里只有一个值。
5
之所以这样返回,是因为记录集是由很多行数据组成的,而不是单个元素的列表。
如果你想把它变得简单一些,可以使用列表推导式来“扁平化”它:
data = [row[0] for row in cursor.fetchall()]