为什么Python数据库查询返回的记录集结果是这样?

3 投票
3 回答
1255 浏览
提问于 2025-04-15 22:05

我到处寻找答案,想知道为什么查询结果会以这种格式返回,以及如何把它转换成一个列表。

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()]

撰写回答