0
0 комментариев

Имеются 3 словаря: inventData, invent101 и invent21, которые я соединяю, делая из них 1 — inventDataAll.

Хотя словари и соединяются, но дело в том, что в словаре inventData есть данные которых нет в invent101 и invent21. Мне необходимо, чтобы скрипт печатал, какие данные он не нашел, но это не происходит.

Вместо этого выводится «Инвентарник» + value[‘invent’] + «счетах не значится» именно столько раз сколько раз отрабатывает первый цикл, вне зависимости от того есть эти данные в invent101 и invent21 или нет.

Хотелось получить помощь по этому поводу.

inventData = {} # 1 словарь
# ...
inventData.setdefault(index, dict(name=name, serial=serial, invent=invent, produce=produce))
# ...
invent101 = {} # 2 словарь
# ...
invent101.setdefault(index, dict(invent=invent, checked=checked, worked=worked, cost=cost))
# ...
invent21 = {} # 3 словарь
# ...
invent21.setdefault(index, dict(invent=invent, checked=checked, worked=worked, cost=cost))
# ...
 
inventDataAll = {} # Итоговый словарь
for key, value in inventData.items():
    for key101, value101 in invent101.items():
        if value['invent'] == value101['invent']:
            inventDataAll.setdefault(key,
                                     dict(name=value['name'], serial=value['serial'],
                                     invent=value['invent'],
                                     produce=value['produce'], checked=value101['checked'],
                                     worked=value101['worked'], cost=value101['cost']))
        elif value['invent'] != value101['invent']:
            for key21, value21 in invent21.items():
                if value['invent'] == value21['invent']:
                    inventDataAll.setdefault(key,
                                             dict(name=value['name'], serial=value['serial'],
                                             invent=value['invent'],
                                             produce=value['produce'], checked=value21['checked'],
                                             worked=value21['worked'], cost=value21['cost']))
    else:
         print("Инвентарник" + value['invent'] + "счетах не значится")


Добавить комментарий