3

如何在 python 中使用 SQLSOUP 从模式/表中获取字典中的列名和类型?使用 MySQLDB,我可以创建一个游标并使用 cursor.description。sqlsoup 有什么等价物吗?

4

2 回答 2

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()
于 2013-06-26T04:10:01.550 回答
0

根据文档

可以指示 Table 对象从数据库中已经存在的相应数据库模式对象中加载有关其自身的信息。这个过程称为反射。在最简单的情况下,您只需指定表名、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-05-09T17:27:54.290 回答