I have a complex dict, something like this:
d = {
  "key1": "value1",
  "key2": {
    "key3": "value3",
    "key4": {
      "key5": "value5",
      "key6": [{"keys1": "value_keys1"}]
    }
}
And I want to turn it on a simple key value
{
  "key1": "value1",
  "key2_key3": "value3",
  "key2_key4_key5": "value5",
  "key2_key4_key6_0_keys1": "value_keys1",
}
How can I do this on python?
I tried this:
def flat_dict_helper(prepend, d):
    if len(prepend) > 0:
        prepend = prepend + "_"
    for k in d:
        i = d[k]
        if isinstance(i, dict):
            r = flat_dict_helper(prepend + k, i)
            for j in r:
                yield j
        else:
            yield (prepend + k, i)
def flat_dict(d):
    return dict(flat_dict_helper("", d))
But this wont work on some cases, when there is a list inside for example
 
    