Help!
Мне нужно запросить таблицу с предложением «in», где SQL выглядит следующим образом:
select * from some_table where some_field in (?)
Первоначально я использовал наивный подход и попробовал это:
in_items = [1,2,3,4]
df = pd.read_sql(MY_SQL_STATEMENT, con=con, params=[in_items]
Что не сработало, выдает следующую ошибку:
The SQL contains 1 parameter markers, but 4 parameters were supplied
Где я застрял, выясняется, как передать список элементов в виде одного параметра.
Я могу использовать метод конкатенации строк, например:
MY_SQL = 'select * from tableA where fieldA in ({})'.format(
','.join([str(x) from x in list_items]))
df = pd.read_sql(MY_SQL, con=con)
Я бы предпочел избежать этого подхода, если это возможно.Кто-нибудь знает способ передачи списка значений в виде одного параметра?
Я также открыт для, возможно, более умного способа сделать это.:)