如何从SQLAlchemy中的现有表中获取列名和类型?

2024-05-18 08:20:11 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个表users,我想知道列名是什么,每列的类型是什么。

我是这样联系的

connectstring = ('mssql+pyodbc:///?odbc_connect=DRIVER%3D%7BSQL'
                     '+Server%7D%3B+server%3D.....')

engine = sqlalchemy.create_engine(connectstring).connect()
md = sqlalchemy.MetaData()
table = sqlalchemy.Table('users', md, autoload=True, autoload_with=engine)
columns = table.c

如果我打电话

for c in columns:
            print type(columns)

我得到输出

<class 'sqlalchemy.sql.base.ImmutableColumnCollection'>

表中每列打印一次。 此外

print columns 

印刷品

['users.column_name_1', 'users.column_name_2', 'users.column_name_3'....]

是否可以在不包含表名的情况下获取列名?


Tags: columnsname类型sqlalchemyconnecttablecolumnmd
2条回答

列具有nametype属性

for c in columns:
    print c.name, c.type

可以从信息架构中调用列名:

选择* 从信息架构列 其中TABLE_NAME='用户'

然后将结果排序为数组,并循环遍历它们。

相关问题 更多 >