У меня есть файл param.yaml с содержимым как
effective_date_raw_from : '2019-08-30'
effective_date_raw_to : '2019-09-02'
, но пока я импортирую его в python script
print(" start : " + str(datetime.datetime.now()))
with open(r'C:\Users\anil\param.yaml') as file:
param_list = yaml.load(file, Loader=yaml.FullLoader)
print(param_list)
print(param_list['effective_date_raw_from'])
print(param_list['effective_date_raw_to'])
print(type(param_list['effective_date_raw_from']))
print(type(param_list['effective_date_raw_to']))
query_template = """
select *
from transaction
where effective_date between {{effective_date_raw_from}} and {{effective_date_raw_to}} and rnk_domain = 'RAW'
"""
j = JinjaSql(param_style='pyformat')
query, bind_params = j.prepare_query(query_template, param_list)
print(query)
print(bind_params)
df_raw = pd.read_sql(query, conn, params=bind_params)
print(df_raw)
, я получаю сообщение об ошибке, например: ( 'HY000', '[HY000] [Cloudera] [ImpalaODBC] (110) Ошибка при выполнении запроса в Impala: [HY000]: AnalysisException: синтаксическая ошибка в строке 4: \ n ... действующая_дата между% (эффективная_дата_расход_from_1). .. \ n ^ \ nОбнаружено:% \ nОжидаемое: CASE, CAST, DEFAULT, EXISTS, FALSE, IF, INTERVAL, NOT, NULL, REPLACE, TRUNCATE, TRUE, IDENTIFIER \ n \ n ПРИЧИНА: Исключение: Синтаксическая ошибка \ n ( 110) (SQLPrepare) '), потому что параметр, который я импортирую
, имеет отсутствующую цитату
''
(хотя они строкового типа), следовательно, запрос возвращает ошибку, есть ли способ ее исправить ..