Как в Python обновлять значения второго словаря, если он получает значение из первого словаря, при этом значения первого меняются динамически

Существует два словаря каждый в своей переменной в отдельном файле. Словарь в переменной date_list обновляется динамически "Изменяются только значения ключей "start_date" и "end_date" и "second_date", все остальное неизменно.

Второй словарь "dict_scripts" берет эти значения и по ним должен запускать SQL скрипты. Но проблема состоит в том что при изменении дат в первом словаре, во второй они не "подтягиваются" и в итоге выводят значения по умолчанию. Каким образом это можно исправить? Есть ли способ заставить второй словарь принимать обновленные значение из первого? Желательно это сделать так, что бы не изменять структуру.

date_list = {
    'data1': {
        "start_date": '2022-07-01',
        "end_date": '2022-07-05'
        },

    'data2': {
        "start_date": '2022-07-06',
        "end_date": '2022-07-10' 
        },

    'data3': {
        "start_date": '2022-07-09',
        "end_date": '2022-07-15',
        "second_date": '2022-07-15'
        }
}

dict_scripts = {
                'data1': f'''select * from pc
                            where dt between ('{date_list['data1']['start_date']}') and ('{date_list['data1']['end_date']}')
                            ''',


                'data2': f'''select * from pc
                            where dt between ('{date_list['data2']["start_date"]}') and ('{date_list['data2']['end_date']}')
                            ''',


                'data3': f'''select * from pc
                            where dt between ('{date_list['data3']["start_date"]}') and ('{date_list['data3']['end_date']}')
                            '''
}

Ответы (1 шт):

Автор решения: Влад

Вопрос был решен простым переопределением второго словаря после изменения первого просто обернув второй в функцию и в последующих ее вызовах.

def get_dict_scripts(date_list):
    return {
                'data1': f'''select * from pc
                            where dt between ('{date_list['data1']['start_date']}') and ('{date_list['data1']['end_date']}')
                            ''',
                'data2': f'''select * from pc
                            where dt between ('{date_list['data2']["start_date"]}') and ('{date_list['data2']['end_date']}')
                            ''',
                'data3': f'''select * from pc
                            where dt between ('{date_list['data3']["start_date"]}') and ('{date_list['data3']['end_date']}')
                            '''
    }
→ Ссылка