如何在python中使用SQLSOUP从模式/表中获取字典中的列名和类型?使用MySQLDB,我可以创建一个游标并使用cursor.description。 sqlsoup有一些等价物吗?
答案 0 :(得分:0)
可以指示Table对象从中加载有关其自身的信息 相应的数据库模式对象已存在于其中 数据库。这个过程叫做反射。在最简单的情况下 您只需要指定表名,MetaData对象和 autoload =真旗。如果MetaData不是持久绑定的话 添加autoload_with参数:
>>> messages = Table('messages', meta, autoload=True, autoload_with=engine)
>>> [c.name for c in messages.columns]
['message_id', 'message_name', 'date']
答案 1 :(得分:0)
看来sqlsoup确实能够直接告诉你列名和类型而不用“下面”到sqlalchemy。 sqlsoup中的表对象有一个名为“c”的成员集合,其中包含表的所有列,如下所示:
>>> import sqlsoup
>>> db =sqlsoup.SQLSoup('sqlite:///test.sqlite')
>>> db.example_table.c
<sqlalchemy.sql.expression.ColumnCollection object at 0x1059819d0>
>>> db.example_table.c.keys()
[u'column_1', u'column_2', u'column_3']
>>> db.example_table.c['column_1']
Column(u'column_1', VARCHAR(), table=<example_table>, primary_key=True, nullable=False)
>>> db.example_table.c['column_1'].type
VARCHAR()