Start here
The safe first move
Call .scalars() on the Result to get ORM entity rows, then .all() or iterate.
Stop before automation when: Mixed column and entity queries that need custom unpacking. Result-shape changes tied to broader query redesign.
Target shape
users = session.execute(select(User)).scalars().all() # returns list of User