假设我有表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'....]
是否可以在不包含表名的情况下获取列名?
答案 0 :(得分:8)
列包含name
和type
属性
for c in columns:
print c.name, c.type
答案 1 :(得分:2)
最好使用“inspect”仅从列中获取信息,而不要反映表格。
import sqlalchemy
from sqlalchemy import inspect
engine = sqlalchemy.create_engine(<url>)
insp = inspect(engine)
columns_table = insp.get_columns(<table_name>, <schema>) #schema is optional
for c in columns_table :
print(c['name'], c['type'])
答案 2 :(得分:-1)
您可以从信息架构中调用列名:
SELECT * 来自information_schema.columns WHERE TABLE_NAME ='用户'
然后将结果排序为数组,并循环遍历它们。