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

如何在Python的pymysql中获取单列数据并转为数组(附示例)

如何用PyMySQL获取单列数据并转为数组

嘿,这个问题我熟!在PyMySQL里获取单列数据并转成你想要的数组格式其实没那么复杂,咱们一步步拆解来看:

第一步:执行查询获取原始结果

先完成基本的数据库连接与查询操作,这里我推荐用with语句管理游标,不用手动关闭游标,省心又安全:

import pymysql

# 替换成你自己的数据库配置信息
conn = pymysql.connect(
    host='localhost',
    user='你的用户名',
    password='你的密码',
    database='目标数据库名',
    charset='utf8mb4'
)

try:
    # 创建游标并执行查询
    with conn.cursor() as cursor:
        sql = "SELECT name FROM users"
        cursor.execute(sql)
        # 这里返回的是元组的元组,格式类似 (('Tom',), ('Ben',), ('Jon',))
        raw_results = cursor.fetchall()
finally:
    # 无论查询成功与否,最后都要关闭数据库连接
    conn.close()

第二步:把原始结果转为目标数组

拿到raw_results之后,咱们只需要提取每个子元组里的第一个元素就行,有两种简洁好用的方式:

方式一:列表推导式(推荐,可读性拉满)

这是最直观也最常用的方法,一行代码直接搞定:

name_array = [row[0] for row in raw_results]

执行后name_array就是你想要的 ["Tom", "Ben", "Jon"] 格式啦。

方式二:使用map函数

如果你偏爱函数式编程风格,也可以用map配合匿名函数实现:

name_array = list(map(lambda x: x[0], raw_results))

效果和列表推导式完全一致。

额外小技巧:处理大数据量场景

如果你的users表数据量特别大,用fetchall()一次性加载所有数据可能会占用过多内存,这时候可以用fetchone()循环读取、分批处理:

name_array = []
with conn.cursor() as cursor:
    cursor.execute(sql)
    while True:
        row = cursor.fetchone()
        if not row:  # 没有更多数据时退出循环
            break
        name_array.append(row[0])

整合后的完整可运行代码

把上面的步骤整合起来,最终的代码长这样:

import pymysql

def get_users_name_list():
    # 数据库连接配置,按需修改
    conn_config = {
        'host': 'localhost',
        'user': 'root',
        'password': 'your_password',
        'database': 'your_database',
        'charset': 'utf8mb4'
    }
    
    name_list = []
    conn = pymysql.connect(**conn_config)
    
    try:
        with conn.cursor() as cursor:
            sql = "SELECT name FROM users"
            cursor.execute(sql)
            # 用列表推导式快速转换结果
            name_list = [row[0] for row in cursor.fetchall()]
    finally:
        conn.close()
    
    return name_list

# 调用函数查看结果
print(get_users_name_list())  # 输出: ['Tom', 'Ben', 'Jon']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:03:14