PythonでSQLSOUPを使用して、スキーマ/テーブルから辞書の列名と型を取得するにはどうすればよいですか? MySQLDB では、カーソルを作成し、cursor.description を使用できます。sqlsoup に相当するものはありますか?
2 に答える
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 に答える
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 に答える