使用 python returns 读取 MYSQL Db 我需要将其转换为列表的元组

Reading MYSQL Db using python returns me a tuple which i need to convert to list

将 python 连接到 MySQL Db 后,我 运行 使用 group_concat 和分组依据从 MySQL 中提取数据的查询,然后我fetchall。

输出如下所示:

[('Fun,Wonderful,Good,Salty',)]

但我希望它看起来像这样:

['Fun','Wonderful','Good','Salty']

Fetchall 似乎正在返回某种元组,这很烦人,因为我需要它作为要在 python 中使用的列表。我尝试使用列表理解将逗号 (,) 替换为 quote&comma"e (',') 但它改为:

["Fun','Wonderful','Good','Salty"]

它将开始和结束引号更改为与我要替换的相反。我怎样才能得到我想要的?

为什么group concat不能立即输出:

['Fun','Wonderful','Good','Salty'] 

而是输出一些列表元组排序,这需要我转换为列表

您使用 group_concat 指示 MySQL 到 return 组的值作为一个结果字段中的逗号分隔字符串。 Python 无法知道您需要将字符串再次拆分为单独的字段。

fetchall() 的 return 值被定义为按照 DB API 2.0 specification in PEP 249 的一系列序列。将查询结果表示为元组列表是普遍接受的做法。

如果您只想查看结果的一个元素,可以使用 fetchone(),这将 return 单个序列,但它可能是一个元组,具体取决于您使用的驱动程序。

如果您需要该字符串作为 Python 中的列表,您可以使用它获得一个,例如:

[('Fun,Wonderful,Good,Salty',)][0][0].split(',')
# ['Fun', 'Wonderful', 'Good', 'Salty']