def random_str(prefix='', n=10):
return prefix + ''.join(sample(ascii_letters, n))
test_dict_1 = {
'name': random_str(),
'value': random_str(),
'rm_filed': 'Remove',
'props': [
{
'type': random_str(),
'value': random_str()
}
for _ in range(10)
]
}
test_dict_2 = {
'name': random_str(prefix='new_'),
'value': random_str(prefix='new_value_'),
'add_field': 'ADD field',
'props': [
{
'type': random_str(prefix='new_type_'),
'value': random_str(prefix='new_type_value')
}
for _ in range(5)
]
}
result = jsondiff.diff(
test_dict_1,
test_dict_2
)
pprint(result, indent=4)
{ delete: ['rm_filed'],
'add_field': 'ADD field',
'name': 'new_ZRhuvMeimI',
'props': { 0: { 'type': 'new_type_GkycXCnmOY',
'value': 'new_type_valueMFykGQeStL'},
1: { 'type': 'new_type_wLmVsxJDuU',
'value': 'new_type_valueBlGVntqMHw'},
2: { 'type': 'new_type_bfhtVYwWrO',
'value': 'new_type_valueJvnqbVYrgU'},
3: { 'type': 'new_type_QbAUzlfDOL',
'value': 'new_type_valuepDjPeqJlkU'},
4: { 'type': 'new_type_ObuRXiQJLF',
'value': 'new_type_valueTQnBYgoDeV'},
delete: [4, 3, 2, 1, 0]},
'value': 'new_value_HSPMIsfvci'}
'Форсаж: Хоббс и Шоу',
('10:00', 'Kino Forum'),
('10:00', 'Kino Forum'),
('10:00', 'Lumiera Cinema (ЦУМ)')),