Python-从字典列表中提取值(由SQL命令生成)
早上好 我正在尝试使用Python中的MySQL数据库,需要提取一些数据,比如表名 因此,我运行以下代码: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.
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非常感谢!