python - 使用 Psycopg2 获取列作为值列表
问题描述
尝试使用 psycopg2 从 PostgreSQL 数据库中提取表和列并尝试以下代码:
def execute_sql(sql):
"""
Execute a query and commits
:param sql:
:return:
"""
conn_info = get_connection_info()
print(conn_info)
print('this is conn info above')
with psycopg2.connect(**conn_info) as connection:
cur = connection.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
cur.execute(sql)
rtn_val = cur.fetchall()
return rtn_val
我给出的 SQL 的输出如下:
[RealDictRow([('table_name', 'pg_statistic')]), RealDictRow([('table_name', 'pg_foreign_table')]), RealDictRow([('table_name', 'pg_authid')]), RealDictRow([('table_name', 'pg_shadow')]), RealDictRow([('table_name', 'pg_roles')])]
但只希望输出为:
['pg_statistic','pg_foreign_table', 'pg_authid', 'pg_shadow', 'pg_roles']
解决方案
您可以执行以下操作:
rtn_val = cur.fetchall()
table_list = [row["table_name"] for row in rtn_val]
```
推荐阅读
- android - 房间中的总和和计数 - 别名没有这样的列
- jquery - 我在 laravel 5.3 中使用 twitter 引导程序,并且折叠功能在本地完美运行,但在实时服务器上却没有
- android - AndroidManifest 中的多个 ComponentDiscoveryService --> 合并冲突
- javascript - 在javascript中组合正则表达式
- azure - 具有持久功能的巨大 2 类队列操作计数
- c++ - 高斯模糊永远无法正常工作
- r - R中文件名列表中的矢量模式匹配和矢量替换
- sql - 两个模式之间的 Redshift 提取字符串 (regexp_substr)
- javascript - 修改父prototype.init()函数
- teamcity - 通过 TeamCity/Octopus 部署 ASP.NET 应用程序时,Application Insights 停止工作