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

Python - Extract Values from List of Dictionary (generated by SQL command)

早上好,

我正在尝试使用 Python 中的 MySQL 数据库,我需要提取一些数据,例如 table 名称。

所以我运行这个代码:

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() returns 一个 dict_values 对象,其作用类似于列表。

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

tables.append(row.values())

有了这个:

tables += row.values()

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

您可以使用此代码,唯一需要记住的是 tables.append(row.values()[0]) 语法,因为您使用的是字典

的值
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])