Ошибка использования в pandas.read_sql с sqlalchemy - PullRequest
0 голосов
/ 15 декабря 2018

Предположим, у вас есть следующий код:

import pandas as pd
pd.read_sql("SELECT * FROM foo_schema.run_info WHERE id=:param order by run_id desc", s.bind, **{'param':5})

Принимая во внимание, что s.bind является объектом двигателя sqlchemy.

Я получаю следующую ошибку:

{TypeError}read_sql() got an unexpected argument 'param'

что не так с моим вызовом функции?

1 Ответ

0 голосов
/ 15 декабря 2018

Из документов ,

pd.read_sql?
...
params : list, tuple or dict, optional, default: None

Вы распаковываете словарь, поэтому он передается в качестве аргумента ключевого слова.См. Понимание kwargs в Python для получения дополнительной информации.

Правильный способ передачи параметров:

pd.read_sql(... params={'param':5})

Как опытно заметил @Ilja Everilä, вам следуетзаключите ваш запрос в вызов text, чтобы синтаксис синтаксиса параметра был правильно проанализирован.

from sqlalchemy import text
pd.read_sql(text(query), s.bind, params={'param':5})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...