May-27-2024, 10:33 AM
(May-25-2024, 07:40 AM)snippsat Wrote: Dos this give the wantent result?
from pprint import pprint dict1 = {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX'], ['IS_COBOL', '1']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} dict2 = {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX'], ['IP', '172.17.10.112'], ['IP', '10.111.160.119'], ['IP', '10.111.160.68'], ['IP', '10.111.160.66'], ['IP', '10.95.0.112'], ['IP', '10.111.162.119']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} # Convert lists to sets of tuples for comparison and removal of duplicates flattened_dict1 = {k: set(map(tuple, v)) for k, v in dict1.items()} flattened_dict2 = {k: set(map(tuple, v)) for k, v in dict2.items()} for key in flattened_dict1: if key in flattened_dict2: common_elements = flattened_dict1[key] & flattened_dict2[key] flattened_dict2[key] -= common_elements # Convert sets of tuples back to lists of lists dict2 = {k: [list(item) for item in v] for k, v in flattened_dict2.items()} pprint(dict2)
Output:{'C11_RG': [], 'SAG01112_SSAP_HA_LPM': [['IP', '10.111.162.119'], ['IP', '10.111.160.66'], ['IP', '172.17.10.112'], ['IP', '10.95.0.112'], ['IP', '10.111.160.119'], ['IP', '10.111.160.68']], 'SAP': [], 'W11_RG': []}
does nothing, value stays in deleted data dict...
root@ssap: /tmp # ./aix_reg_client_tcp_dev.py --run-now changed: {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIXi']]} ONLY ECHO, NOTHING SENT TO SERVER DEBUG ON: STD|1|SAG01112_SSAP_HA_LPM|OS_TYPE|AIXi|63b560175e8a15e180b58498f6910fb2 deleted: {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} del filtered {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} ONLY ECHO, NOTHING SENT TO SERVER DEBUG ON: DEL|1|SAG01112_SSAP_HA_LPM|OS_TYPE|AIX|63b560175e8a15e180b58498f6910fb2