SQLAlchemy получение типов данных столбца результатов запроса

from sqlalchemy import create_engine, MetaData, ForeignKey

engine = create_engine("mysql://user:passwd@localhost/shema", echo=False)
meta = MetaData(engine, True)
conn = engine.connect()

tb_list = meta.tables["tb_list"]
tb_data = meta.tables["tb_data"]

tb_list.c.i_data.append_foreign_key( ForeignKey(tb_data.c.i_id) )

q = tb_list.outerjoin(tb_data).select()

res = conn.execute(q)

И теперь, как я могу получить тип столбцов результата запроса res

Одно из решений:

res._key_cache[ col_name ][0]

Вы знаете что-то еще?

11
задан user272432 13 February 2010 в 15:49
поделиться

1 ответ

вы бы сказали:

types = [col.type for col in q.columns]

(скомпилированный) оператор тоже находится в результате, если вам хочется копать:

types = [col.type for col in res.context.compiled.statement.columns]

если вам нужна версия типов DBAPI, которая немного более разнообразна на основе DBAPI:

types = [elem[1] for elem in res.cursor.description]

возможно, мы рассмотрим возможность добавления такого рода метаданных напрямую в ResultProxy .

13
ответ дан 3 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: