Keyed Tuple не возвращается при выполнении запросов выбора с dbobject.query.with_entities (dbobject.col1, dbobject2) в Flask SqlAlchamey - PullRequest
0 голосов
/ 13 июня 2018

Я работаю в Swagger с приложением Flask.В этом я пытаюсь создать ответ API.Итак, я попробовал следующие вещи.

У меня есть таблица с 15 столбцами.Я просто хотел выбрать только определенные столбцы из таблицы.Поэтому я использовал with_entities() из sqlalchemy, как показано ниже.

dbobject.query.with_entities(dbobject.id, dbobject.name, dbobject.version)

Он возвращает доступные строки из таблицы в этом формате для всех строк (21, asset21, 9898), но не как кортеж с ключами.Также row.__table__.columns.keys() не работает, когда я пытался получить имена столбцов для выбранных строк из возвращенных строк вышеупомянутого запроса.Это просто заканчивается приведенной ниже ошибкой

    for col in row.__table__.columns.keys() if col != 'id')
AttributeError: 'result' object has no attribute '__table__'

Но row.__table__.columns.keys() тот же фрагмент работает, когда я выбираю все столбцы из таблицы dbobject.query.all()

Любая конкретная причина, почему он не работает дляwith_entities

1 Ответ

0 голосов
/ 13 июня 2018

Попытка маркировки должна дать конечный результат, как и ожидалось

dbobject.query.with_entities(dbobject.id.label('id'), dbobject.name.label('name'), dbobject.version.label('version'))
...