首页 > 解决方案 > 从 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

标签: pythonpostgresqlsqlalchemypsycopg2

解决方案


推荐阅读