如何将mysql单列列表结果直接提取到python中的列表?

pan*_*ish 0 python mysql tuples list

我有一个mysql调用:

zip = 48326

cursor.execute ("""
    select distinct(name) 
      from usertab 
     where zip= %s
""" , (zip))

result = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

结果返回一个如下所示的元组:

result = (('alan',), ('bob',), ('steve',), ('tom',))
Run Code Online (Sandbox Code Playgroud)

但我需要一个这样的列表:

mylist= ['alan', 'bob', 'steve', 'tom']
Run Code Online (Sandbox Code Playgroud)

所以我将元组处理成这样的列表:

mylist = []

for row, key in enumerate(result):
    for col, data in enumerate(key):
        mylist.append(data)
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但我想要一种更简单的方法.
如何直接将mysql单列结果提取到列表中?

Tad*_*eck 7

这样做,使用列表理解:

mylist = [row[0] for row in result]
Run Code Online (Sandbox Code Playgroud)

它将展平您的结果并从中创建列表.

另一种方法,没有列表理解:

from itertools import chain
mylist = list(chain.from_iterable(result))
Run Code Online (Sandbox Code Playgroud)

它将展平结果并将其转换为列表.