У меня есть два следующих списка:
retrieved_sessions = [
{'start_time': '2020-01-17T08:30:00.000Z', 'availability': '5'},
{'start_time': '2020-01-17T09:30:00.000Z', 'availability': '7'},
{'start_time': '2020-01-17T10:30:00.000Z', 'availability': '6'},
{'start_time': '2020-01-17T11:30:00.000Z', 'availability': '5'},
{'start_time': '2020-01-17T12:30:00.000Z', 'availability': '0'},
{'start_time': '2020-01-17T13:30:00.000Z', 'availability': '2'},
{'start_time': '2020-01-17T14:30:00.000Z', 'availability': '13'}
]
all_sessions = [
{'start_time': '2020-01-17T09:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T09:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T10:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T10:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T11:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T11:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T12:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T12:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T13:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T13:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T14:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T14:30:00.000Z', 'availability': None},
{'start_time': '2020-01-17T15:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T15:30:00.000Z', 'availability': None}
]
Мне было интересно, как лучше всего обновить словарь в all_sessions
с помощью availability
из соответствующего * 1007? * dictinary, используя start_time
в качестве поля поиска / сопоставления первичного ключа?
Ожидаемый результат:
all_sessions = [
{'start_time': '2020-01-17T09:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T09:30:00.000Z', 'availability': '7'},
{'start_time': '2020-01-17T10:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T10:30:00.000Z', 'availability': '6'},
{'start_time': '2020-01-17T11:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T11:30:00.000Z', 'availability': '5'},
{'start_time': '2020-01-17T12:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T12:30:00.000Z', 'availability': '0'},
{'start_time': '2020-01-17T13:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T13:30:00.000Z', 'availability': '2'},
{'start_time': '2020-01-17T14:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T14:30:00.000Z', 'availability': '13'},
{'start_time': '2020-01-17T15:00:00.000Z', 'availability': None},
{'start_time': '2020-01-17T15:30:00.000Z', 'availability': None}
]
Я пробовал следующее l oop в пределах oop:
for available in availability:
for session in sessions:
if session['start_time'] == available['start_time']:
session['availability'] = available['availability']
Примечание. Данные поступают из SOAP API, поэтому вместо wierd '1'
/ '2'
, например, 1
, 2
. и др c