@alecxe @Ted Petrou, , params, pd.read_sql_query(), (coerce_float)
, for date in dates:, :
import sqlite3
dates=['2001-01-01','2002-02-02']
qry = 'select * from aaa where open in ({})'
conn = sqlite3.connect(r'D:\temp\.data\a.sqlite')
df = pd.read_sql(qry.format(','.join(list('?' * len(dates)))), conn, params=dates)
Demo:
SQLite:
sqlite> .mode column
sqlite> .header on
sqlite> select * from aaa;
open
----------
2016-12-25
2001-01-01
2002-02-02
:
In [40]: %paste
dates=['2001-01-01','2002-02-02']
qry = 'select * from aaa where open in ({})'
conn = sqlite3.connect(r'D:\temp\.data\a.sqlite')
df = pd.read_sql(qry.format(','.join(list('?' * len(dates)))), conn, params=dates)
In [41]: df
Out[41]:
open
0 2001-01-01
1 2002-02-02
:
In [35]: qry = 'select * from aaa where open in ({})'
In [36]: ','.join(list('?' * len(dates)))
Out[36]: '?,?'
In [37]: qry.format(','.join(list('?' * len(dates))))
Out[37]: 'select * from aaa where open in (?,?)'
In [38]: dates.append('2003-03-03') # <-- let add a third parameter
In [39]: qry.format(','.join(list('?' * len(dates))))
Out[39]: 'select * from aaa where open in (?,?,?)'