-
Anonymous
DeepDiff «values_changed» не имеет смысла при сравнении списка диктовок
Сообщение
Anonymous »
Попытка использовать DeepDiff для сравнения двух списков диктовок и полученного различия не имеет для меня смысла. Код:
Код: Выделить всё
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"
}
}
}
}
Я не понимаю, почему я вижу что-то в разделе «values_changed». Я ожидал увидеть всего четыре записи в разделе iterable_item_added
Подробнее здесь:
https://stackoverflow.com/questions/787 ... t-of-dicts
1731933520
Anonymous
Попытка использовать DeepDiff для сравнения двух списков диктовок и полученного различия не имеет для меня смысла. Код:
[code]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"
}
}
}
}
[/code]
Я не понимаю, почему я вижу что-то в разделе «values_changed». Я ожидал увидеть всего четыре записи в разделе iterable_item_added
Подробнее здесь: [url]https://stackoverflow.com/questions/78761626/deepdiff-values-changed-is-not-making-sense-when-comparing-list-of-dicts[/url]