На всякий случай, если вы не хотите, чтобы wi sh обновлял оригинальный словарь и одновременно вносил необходимые исправления в новый словарь.
import copy
#my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125", "Campaign_Date": "", "Another_Date": "2020-07-01"}]
# New input
my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125", "Campaign_Date": "", "Another_Date": "2020-07-01"}, {"Id": "126", "Another_Date": "2020-07-01"}]
my_new_list = copy.deepcopy(my_dicts)
campaign_key = 'Campaign_Date'
for index, my_dict in enumerate(my_new_list):
# check if "campaign_key" key exists
if campaign_key in my_dict.keys():
# Check for empty or null value for key "campaign_key"
if my_dict[campaign_key] in ["", None]:
my_dict['Campaign_Date'] = my_dict["Another_Date"]
else:
# if key "campaign_key" doesn't exist delete that item from list
my_new_list.pop(index)
print(my_dicts)
print(my_new_list)
expected_output = [{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '2020-07-01', 'Another_Date': '2020-07-01'}]
if my_new_list == expected_output:
print("Success")
Вывод:
[{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '', 'Another_Date': '2020-07-01'}, {'Id': '126', 'Another_Date': '2020-07-01'}]
[{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '2020-07-01', 'Another_Date': '2020-07-01'}]
Success