Метод выбора SQLalchemy в пандах read_sql - PullRequest
0 голосов
/ 21 января 2019

пытается получить результаты из запроса sqlalchemy:

l = session.query(a.id)

это работает для правильного результата:

df = pd.read_sql(sql=l.statement,con=conn)

дополнительно, это вернет правильный sql:

print(l)

однако в документации указано, что использование pandas.read_sql:

df = pd.read_sql(l, conn)

должно возвращать результаты, верно?

ссылка: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html

1 Ответ

0 голосов
/ 25 января 2019

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...