You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取MySQL查询结果列表中单元素元组的ID数值?

解决mysql.connector返回单元素元组的问题

你遇到的是cursor.fetchall()的默认行为:它会把查询结果的每一行封装成元组返回,哪怕只查询了一个字段,所以每个元素都是(数值,)这种单元素元组。要得到纯数值的列表,有几种简单的处理方式:

方法一:列表推导式(推荐)

直接遍历查询结果,提取每个元组的第一个元素生成新列表:

import mysql.connector

con = mysql.connector.connect(host='localhost',
                              database='database',
                              user='root',
                              password=database_pw)
cursor = con.cursor()
query = """select playerid from nba_players;"""
cursor.execute(query)
# 提取每个元组的第一个元素,生成纯数值列表
playerids = [row[0] for row in cursor.fetchall()]
print(playerids)

输出结果:

[20000441, 20000442, ...]

方法二:map函数

用map配合匿名函数提取元素:

playerids = list(map(lambda x: x[0], cursor.fetchall()))

方法三:逐行处理(适合大结果集,节省内存)

如果查询结果非常大,不想一次性加载所有数据到内存,可以用cursor.fetchone()循环处理:

playerids = []
row = cursor.fetchone()
while row is not None:
    playerids.append(row[0])
    row = cursor.fetchone()

注:你期望输出里的(20000441)在Python中其实就是普通整数,不是元组,所以上面的方法得到的纯数值列表已经符合需求。

内容的提问来源于stack exchange,提问作者Matthew Jarrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:57:20