session.query()
создает объект запроса. См. sqlalchemy.org
pd.read_sql(sql, con)
требует выделения или текстового объекта. Из вашей справки:
sql: строка или SQLAlchemy Выбираемый (выделенный или текстовый объект) SQL
запрос для выполнения или имя таблицы.
Вы можете проверить тип l
и l.statement
:
type(l)
'sqlalchemy.orm.query.Query'
type(l.statement)
'Sqlalchemy.sql.annotation.AnnotatedSelect'
Когда вы выполняете print (query), определяется класс запроса для возврата оператора select.