首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中获取sqlsoup中模式的列名?

如何在python中获取sqlsoup中模式的列名?
EN

Stack Overflow用户
提问于 2013-05-10 01:17:04
回答 2查看 754关注 0票数 3

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-10 01:27:54

根据documentation的说法

可以指示表对象从数据库中已存在的相应数据库架构对象中加载有关其自身的信息。这个过程被称为反射。在最简单的情况下,您只需指定表名、一个MetaData对象和autoload=True标志。如果MetaData不是永久绑定的,还要添加autoload_with参数:

代码语言:javascript
复制
>>> messages = Table('messages', meta, autoload=True, autoload_with=engine)
>>> [c.name for c in messages.columns]
['message_id', 'message_name', 'date']
票数 0
EN

Stack Overflow用户

发布于 2013-06-26 12:10:02

看起来sqlsoup确实有能力直接告诉你列名和类型,而不是“底层”到sqlalchemy。sqlsoup中的表对象有一个名为'c‘的成员集合,该集合包含表的所有列,如下所示:

代码语言:javascript
复制
>>> 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16467386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档