d1 = {'x': 'a', 'y': 'b', 'z': 'c'}
d2 = {'z': 'c', 'w': 'r'}
d3 = {'z': 'd', 'w': 'r'}

def merge(d1, d2):
    for k1, v1 in list(d1.items()):
        if k1 in d2 and v1 != d2[k1]:
            raise ValueError
ret = d1.copy()
ret.update(d2)
return ret
print(merge(d1, d2))
print(merge(d1, d3))
Объединение двух диктов в python без разрешения дублирования