Данные поступают из базы данных и из файла CSV.Я должен сравнить их как можно быстрее и обновить таблицу базы данных на соответствующее значение.Предположим, что dict d1 поступает из базы данных как d2 из входного файла.Главный ключ - это первичный ключ в БД.(здесь 1 и 2)
d1[1] = {'a': 10, 'b': 20}
d1[2] = {'a': 11, 'b': 21}
Теперь поступают данные из входного файла:
d2[1] = {'b': 10, 'a': 20}
d2[2] = {'b': 21, 'a': 19}
Как видите, все значения различны для клавиши 1 и только для значения«а» отличается для ключа 2. У меня есть следующий запрос:
print({o: ({b: d2[o][b]}) for o in d1.keys() for b in d2[o].keys() if d1[o][b] != d2[o][b]})
Ожидаемый результат будет:
{1: ({'a': 20}, {'b': 10}), 2: {'a': 19}}
Вместо этого у меня есть этот результат (яне отображаются все измененные значения для 1):
{1: {'a': 20}, 2: {'a': 19}}
Чего мне не хватает?