Как создать запрос SQL Server на основе параметров с использованием Pandas в Python

#python #sql-server #pandas #sqlalchemy

#python #sql-сервер #pandas #sqlalchemy

Вопрос:

Я использую следующий код.

 import sqlalchemy as sq
from sqlalchemy import create_engine
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns

server = 'ourServer'
database = 'ourdatabase'
driver = 'SQL Server'
username = 'username'
password = 'password'
database_connection= f'mssql://{username}:{password}@{server}/{database}?driver={driver}'

engine = sq.create_engine(database_connection)
connection = engine.connect()

account_id = '111111111'

x= pd.read_sql_query("select * from tablename where AccountID =?, account_id" , connection)
 

Когда я запускаю приведенный выше код, он выдает эту ошибку.

Ошибка DBAPIError: (pyodbc.Error) (‘07002’, ‘[07002] [ Microsoft][Драйвер ODBC SQL Server] Неверное поле подсчета или синтаксическая ошибка (0) (SQLExecDirectW)’)

Как передать параметр для условия запроса SQL?

Комментарии:

1. Похоже, это описано в документации read_sql_query . Вы пробовали: x= pd.read_sql_query("select * from tablename where AccountID =?" , connection, params=(account_id) ) ?

2. @AlwaysLearning — Отсутствует запятая, чтобы сделать его кортежем? params=(account_id,)

3. Большое вам спасибо @GordThompson. Он работает с кортежем.

4. Также спасибо @AlwaysLearning за быстрый ответ.