Параметры в pyodbc в пандах read_sql_query - PullRequest
0 голосов
/ 06 октября 2019

Учитывая следующую строку запроса,

symbol = "'AAPL'"

query = """SELECT TOP (1000000) 
       [date]
      ,[symbol]
      ,[open]
      ,[high]
      ,[low]
      ,[close]
      ,[volume]
      ,[exch]
      FROM [AMEXEOD].[dbo].[Stocks_eod]
      where 
          symbol = :symbol
      order by 
         date desc"""

Когда я пытаюсь ее выполнить:

df = pd.read_sql_query(query, conn, params={'symbol': symbol})

Я получаю ошибку:

('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')

Я думал:symbol это способ пометить параметры?

1 Ответ

0 голосов
/ 08 октября 2019

Какую версию python вы используете? Поскольку вы должны иметь возможность использовать форматирование строки.

Python 2.x

symbol = "'AAPL'"

query = """SELECT TOP (1000000) 
       [date]
      ,[symbol]
      ,[open]
      ,[high]
      ,[low]
      ,[close]
      ,[volume]
      ,[exch]
      FROM [AMEXEOD].[dbo].[Stocks_eod]
      where 
          symbol = {0}
      order by 
         date desc""".format(symbol)

Python 3.x

symbol = "'AAPL'"

query = """SELECT TOP (1000000) 
       [date]
      ,[symbol]
      ,[open]
      ,[high]
      ,[low]
      ,[close]
      ,[volume]
      ,[exch]
      FROM [AMEXEOD].[dbo].[Stocks_eod]
      where 
          symbol = {symbol}
      order by 
         date desc"""

Много деталей здесь по этому вопросу, если вам интересно.

Добавьте и используйте это в своем запросе: df = pd.read_sql_query(query, conn)

...