Python-从字典列表中提取值(由SQL命令生成)

Python-从字典列表中提取值(由SQL命令生成),python,mysql,list,dictionary,Python,Mysql,List,Dictionary,早上好 我正在尝试使用Python中的MySQL数据库,需要提取一些数据,比如表名 因此,我运行以下代码: import pymysql.cursors conn = pymysql.connect(host='myHost', user='user', password='password', db='test', cursorclass=pymysql.cursors.DictCursor) a = conn.cursor() sql="SHOW tables like '%s%'" a.

早上好

我正在尝试使用Python中的MySQL数据库,需要提取一些数据,比如表名

因此,我运行以下代码:

import pymysql.cursors
conn = pymysql.connect(host='myHost', user='user', password='password', db='test', cursorclass=pymysql.cursors.DictCursor)
a = conn.cursor()

sql="SHOW tables like '%s%'"
a.execute(sql)
rows = a.fetchall()
tables = []
for row in rows:
    tables.append(row.values())
但是,当我运行
print(tables)
时,它会给出如下结果:

 ["dict_values(['table1'])", "dict_values(['table2'])"]
我需要的唯一列表是
['table1','table2','etc','etc']
。 我怎样才能解决这个问题?是SQL语句导致了这些问题

谢谢

row.values()
返回一个dict\u values对象,其作用类似于列表

由于您可以假定该列表中只有一个值,因此可以替换此行:

tables.append(row.values())
为此:

tables += row.values()

您应该会得到预期的结果。

您可以使用此代码。您需要记住的唯一一件事是
tables.append(row.values()[0])
语法导致您使用dictionary的值

import pymysql.cursors
conn = pymysql.connect(host='myHost', user='user', password='password', db='test', cursorclass=pymysql.cursors.DictCursor)
a = conn.cursor()
sql="SHOW tables"
a.execute(sql)
tables = []
rows = a.fetchall()
for row in rows:
    tables.append(list(row.values())[0])

它返回:TypeError:“dict_values”对象不支持在python 3行中进行索引。values()返回视图而不是列表,因此您可以更改此表的最后一行。append(list(row.values())[0])@andrepogg非常感谢!