Я получаю ошибку sql-запроса при запуске приведенного ниже кода. по некоторым причинам этот код хорошо работает на некоторых файлах, но выдает ошибку в некоторых из них.
Я пытаюсь вернуть значения из базы данных postgres при подключении через python. Первый запрос работает нормально, а второй выдает синтаксическую ошибку.
import pandas, psycopg2, pandas.io.sql
order_list_s = df_s['ORDER'].unique().astype(str)
order_id_s = tuple(order_list_s.tolist()) # to get the list into tuple as db accepts tuple,str but not lists.
order_list_m = df_m['ORDER'].unique().astype(str)
order_id_m = tuple(order_list_m.tolist())
sql_date_tup = '01-01-2019'
connection = psycopg2.connect("host='dba' port=1234 dbname=name user=me password='pass'")
sql_u = """select "demand", "sid" from "global" where "wh" = 'UL' and "file date" >= {} and "demand" in {};""".format(sql_date_tup, order_id_s)
sid_u = psql.read_sql(sql_u, connection)
sql_m = """select "demand", "sid" from "global" where "wh" = 'MI' and "file date" >= {} and "demand" in {};""".format(sql_date_tup, order_id_m)
sid_m = psql.read_sql(sql_m, connection)
connection.close()
ожидается получить 2 кадра данных, sid_u и sid_m, но второй запрос выдаст ошибку ниже:
line 1431, in execute
cur.execute(*args)
psycopg2.ProgrammingError: syntax error at or near ")"
LINE 1: ...MI' and "file date" >= '2019-05-02' and "demand" in ();