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

如何使用Python读取MySQL单列值转为一维列表而非元组列表

问题解决方案

mysql.connector中cursor.fetchall()的返回值默认是由行元组组成的列表,即使查询单列,每行也会被封装为仅含一个元素的元组,所以你需要自行提取每个元组的第一个元素来得到一维列表。

方案1:列表推导式修改(最小改动)

只需要修改你原有代码中rows的赋值逻辑即可:

import mysql
import mysql.connector
import pandas as pd


conn = mysql.connector.connect(host="localhost", user="root", 
passwd="Abcd11",database="entry",auth_plugin="mysql_native_password")
query= "select ledger from l_db_name"
cur=conn.cursor()
cur.execute(query)
# 遍历每一行元组,取第一个元素组成新列表
rows = [item[0] for item in cur.fetchall()]
conn.commit()

print(rows)

方案2:借助Pandas直接转换(代码更简洁)

你已经导入了Pandas,可以直接用Pandas的查询接口直接得到目标格式:

import mysql
import mysql.connector
import pandas as pd


conn = mysql.connector.connect(host="localhost", user="root", 
passwd="Abcd11",database="entry",auth_plugin="mysql_native_password")
query= "select ledger from l_db_name"
df = pd.read_sql(query, conn)
rows = df['ledger'].tolist()
conn.commit()

print(rows)

两种方案运行后输出的都是你需要的一维列表格式:
['Repair and Maintenance - General', 'Advance salary', 'EXIM Deposit', 'Office Cleaning Expenses']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:06:03