Выражение, которое вы повторяете, вычисляет список объектов модели , а не строк. Итак, правильное их использование:
for u in session.query(User).all():
print u.id, u.name
Вам действительно нужно преобразовать их в dicts? Конечно, существует много способов, но тогда вам не нужна ORM-часть SQLAlchemy:
result = session.execute(User.__table__.select())
for row in result:
print dict(row)
Обновление: посмотрите модуль sqlalchemy.orm.attributes
. Он имеет набор функций для работы с состоянием объекта, который может быть вам полезен, особенно instance_dict()
.