如何使用python中的SQLSOUP从模式/表中获取字典中的列名和类型?使用MySQLDB,我可以创建一个游标并使用cursor.description。sqlsoup有没有等价物?
发布于 2013-05-10 01:27:54
根据documentation的说法
可以指示表对象从数据库中已存在的相应数据库架构对象中加载有关其自身的信息。这个过程被称为反射。在最简单的情况下,您只需指定表名、一个MetaData对象和autoload=True标志。如果MetaData不是永久绑定的,还要添加autoload_with参数:
>>> messages = Table('messages', meta, autoload=True, autoload_with=engine)
>>> [c.name for c in messages.columns]
['message_id', 'message_name', 'date']发布于 2013-06-26 12:10:02
看起来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()https://stackoverflow.com/questions/16467386
复制相似问题