SQLAlchemy: как обращаться к отфильтрованным полям - PullRequest
0 голосов
/ 24 октября 2018

Я делаю относительно простой ETL-проект с использованием SQLAlchemy.

Существует большая существующая база данных PostgreSQL с несколькими «схемами» (в смысле суб-базы данных PostgreSQL), одна из которых новая и проектэто преобразовать данные из схемы «старая» в схему «новая».

У меня есть один набор из двух «старых» исходных таблиц, которые мне нужно объединить, чтобы получить новую таблицу ... Я могу »не видно, как обращаться к полям в объединенном / отфильтрованном надмножестве двух таблиц.Например, если я просто зациклюсь на одной таблице:

allp = session.query(Permit).all()
for p in allp:
    print p.permit_id

... работает как положено.

Но если я настрою фильтр для объединения двух таблиц:

prmp = session.query(Permit,Permit_master).filter(Permit_master.id == Permit.mast_id).all()
for p in prmp:
    print p.permit_id

дает

'result' object has no attribute 'permit_id'

Это должно быть что-то простое, но я попытался проверить объект с помощью dir () безрезультатно.

Помогите, пожалуйста ...

1 Ответ

0 голосов
/ 24 октября 2018

Результаты вашего запроса: 2-кортеж с ключом из Permit и Permit_master.Вы можете получить доступ к полученным объектам, используя либо их позицию, либо ключ:

for p in prmp:
    print p.Permit.permit_id
    # or
    print p[0].permit_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...