python - 从 create_engine (postgresql) 获取列
问题描述
在我的职能中,我有
from sqlalchemy import create_engine
query = "SELECT * from users"
eng = create_engine(f'postgresql://{self.user}:{self.pwd}@{self.host}:{self.port}/{self.db}',execution_options={"stream_results":True})
con = eng.connect()
ex = con.execute(query)
df = pd.DataFrame(ex.fetchall())
df.columns = <lost>
如何从users
表中获取列名?
我努力了
col = [desc[0] for desc in con.cursor().description]
#'Connection' object has no attribute 'cursor'
col = [name for name in con.cursor().Columns]
#'psycopg2.extensions.cursor' object has no attribute 'Columns'
col = [desc[0] for desc in eng.raw_connection().cursor().description.name]
# 'NoneType' object is not iterable
基于文档(cursor)和(Columns),但我认为它适用于纯 psycopg2-connections。一起使用时找不到sqlalchemy
解决方案
推荐阅读
- python - 如何使用 python 和 postgresql 存储时区感知日期时间
- sql - SQLite 查询计划器未使用最佳(覆盖)索引
- regex - 向后迭代 MatchCollection
- google-sheets - 计算具有无效数据验证值的单元格数
- objectbox - ObjectBox:在 Dart 中打开用 Java 创建的 DB 文件时出现问题
- c# - 使用基本身份验证连接到 SignalR 集线器
- google-apps-script - 如何使用 Google Apps 脚本遍历范围并根据条件构建“表格”?
- r - 有没有办法在 ggplot 中找到方面的名称?
- django - Django - 如何获取与对象连接的所有子字段的计数
- ios - 'NSInternalInconsistencyException',原因:'无法在包中加载 NIB: