我一直在寻找一种方法来更好地表示通过pymysql在mysql表上运行查询并偶然发现DictCursor
后得到的输出。
我试了一下,就能达到以下目的
import pymysql
# Connect to mysql database
conn = pymysql.connect('db_conn_str', 'user_r',
'pwd_r', 'db_name')
# Run a query to list all tables in database
cur = conn.cursor(pymysql.cursors.DictCursor)
cur.execute('show tables')
tables = cur.fetchall()
# We get a list of dictionaries
print(tables)
我得到如下输出
[
{'Tables_in_db_name': 'table_x'},
{'Tables_in_db_name': 'table_y'},
{'Tables_in_db_name': 'table_z'}
]
我想知道密钥Tables_in_db_name
是否可以定义?如果没有,那么如何选择键的名称。
答案 0 :(得分:1)
键来自结果集的标题。
如果运行命令SHOW TABLES
,则不能更改标题。这是mysql客户端中此命令的示例:
mysql> show tables from test;
+----------------+
| Tables_in_test |
+----------------+
| bar |
| foo |
+----------------+
如果您希望获得更多控制权,则可以查询INFORMATION_SCHEMA(这正是SHOW TABLES
内部实际执行的操作):
mysql> select table_name as `my_custom_key` from information_schema.tables
where table_schema='test';
+---------------+
| my_custom_key |
+---------------+
| bar |
| foo |
+---------------+