L = [{'value1': 'fssd', 'value2': 'dsfds', 'value3': 'abcd', 'value4': 'gk'
    }, {'value1': 'asdasd', 'value2': 'asdas', 'value3': 'dafdd', 'value4':
    'sdfsdf'}, {'value1': 'sdfsf', 'value2': 'sdfsdf', 'value3': 'abcd',
    'value4': 'gk'}, {'value1': 'asddas', 'value2': 'asdsa', 'value3':
    'abcd', 'value4': 'gk'}, {'value1': 'asdasd', 'value2': 'dskksks',
    'value3': 'ldlsld', 'value4': 'sdlsld'}]
getvals = operator.itemgetter('value3', 'value4')
L.sort(key=getvals)
result = []
for k, g in itertools.groupby(L, getvals):
    result.append(next(g))
L[:] = result
pprint.pprint(L)
remove duplicates from nested dictionaries in list