On Apr 28, 2018 06:54, Glenn Schultz <glennmschu...@me.com> wrote:
>
> All,
>
> I have the following set-up (below) which will be used to call data from 
> multiple sectors.  There is a sql query (transact sql) and connection.  This 
> works fine.  However, I would like to parametrize the query so I can enter 
> different sectors.  I have checked through pyodbc and several SO posts.  
> However, I am stuck and cannot get the parametrized version to work.  Most 
> examples I have found are either sqlite or postgres.
>
> sql ="""select foo from mutable where model sector = 'mysector'"""
> conn = myconn
>
> def modeldata(modelquery, conn)
> modeldata = pandas.read_sql_query(sql, conn)
> return modeldata
>
> Here is what I have tried (various combinations) - what am I doing wrong?
>
> sql ="""select foo from mutable where model sector = ?""", [params]
> conn = myconn
>
> def modeldata(modelquery, conn, params)
> modeldata = pandas.read_sql_query(sql, conn, params)
> return modeldata

pandas.read_sql_query(sql, conn, params=params)

The third positional arg is actually index_col, so you need to use a keyword 
arg. 
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql_query.html#pandas.read_sql_query

BTW, I think you can use a context manager to automatically close the 
connection:
with pyodbc.connect(your_conn_string) as conn:
    df = pd.read_sql_query(sql, conn, params=params)

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to