Given a nested dictionary:
nested = {
    'A': {
        'B': {
            'C': 'C val',
            'G': 'G val'
        },
        'D': {
            'E': {
                'F': 'F val'
            }
        }
    }
}
I want to recursively concatenate the keys of the dictionary, except for the "final" key-value pairs, and put the concatenated keys in a new dictionary, like so:
expected = {
    'A:B': {'C': 'C val', 'G': 'G val'},
    'A:D:E': {'F': 'F val'}
}
How can I make such a function, without knowing the structure of the nested dict beforehand?
 
     
    