Ricardo Francois
Ricardo Francois

Reputation: 792

How to get flattened list of all inner level nested keys in dictionary - python?

I'm trying to get a list of all keys in the nested level of my dictionary.

My dictionary resembles:

my_dict= {
 'DICT':{
  'level_1a':{
   'level_2a':{}
  },
  'level_1b': {
   'level_2b':{},
   'level_2c':{}
  }
}

My desired output should resemble:

['level_2a', 'level_2b', 'level_2c']

What I've tried:

[list(v) for k, v in json['DICT'].items()]

My current output:

[['level_2a'], ['level_2b', 'level_2c']]

I want my result to be fully flattened to a single-level list. I've tried flattening libraries but the result tends to appear as: ['level_2a', 'level_2blevel_2c'] which is incorrect. Not looking to make the code more complex by creating another method just to flatten this list.

Would appreciate some help, thank you!

Upvotes: 1

Views: 99

Answers (1)

Andrej Kesely
Andrej Kesely

Reputation: 195543

Try:

my_dict = {
    "DICT": {
        "level_1a": {"level_2a": {}},
        "level_1b": {"level_2b": {}, "level_2c": {}},
    }
}
lst = [vv for v in my_dict["DICT"].values() for vv in v]
print(lst)

Prints:

['level_2a', 'level_2b', 'level_2c']

Upvotes: 2

Related Questions