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]
вы знаете что-то еще ?
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
.