Trying to use DeepDiff to compare two lists of dicts and the resulting diff isn’t making sense to me. Code is:
new_config = [
{'peer-address': '10.1.1.0', 'description': 'switch1a.rk01', 'peer-group': 'V4'},
{'peer-address': '10.1.1.4', 'description': 'switch1b.rk01', 'peer-group': 'V4'},
{'peer-address': 'fc03::', 'description': 'switch1a.rk01', 'peer-group': 'V6'},
{'peer-address': 'fc03::4', 'description': 'switch1b.rk01', 'peer-group': 'V6'}
]
old_config = [
{'peer-address': '1.1.1.1', 'description': 'foo', 'peer-group': 'TEST'}
]
diff = DeepDiff(new_config, old_config, ignore_order=True)
print(json.dumps(diff, indent=2))
{
"iterable_item_added": {
"root[1]": {
"description": "switch1b.rk01",
"peer-address": "10.1.1.4",
"peer-group": "V4"
},
"root[2]": {
"description": "switch1a.rk01",
"peer-address": "fc03::",
"peer-group": "V6"
},
"root[3]": {
"description": "switch1b.rk01",
"peer-address": "fc03::4",
"peer-group": "V6"
}
},
"values_changed": {
"root[0]": {
"new_value": {
"description": "switch1a.rk01",
"peer-address": "10.1.1.0",
"peer-group": "V4"
},
"old_value": {
"description": "foo",
"peer-address": "1.1.1.1",
"peer-group": "TEST"
}
}
}
}
I don’t understand why i’m seeing anything in the values_changed
section. I was expecting to just see four entries under iterable_item_added
1