我正在使用SQLAlchemy做一个相对简单的ETL项目。
现有的PostgreSQL数据库很大,具有多个'schemas'(在PostgreSQL子数据库意义上),其中一个是新的,并且该项目是将数据从模式'旧'转换为模式'新'。 / p>
我有一组两个“旧”源表,我必须将它们连接在一起才能获得新表...我看不到如何引用两个表的联接/过滤超集中的字段。例如,如果我只循环一个表:
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()检查对象无济于事。
请帮助...
答案 0 :(得分:1)
您的查询结果是Permit
和Permit_master
中的keyed 2-tuples。您可以使用结果实体的位置或键来访问它们:
for p in prmp:
print p.Permit.permit_id
# or
print p[0].permit_id