Extracting all values of key _type
into a list (using recursion):
def extract_keys(d):
if isinstance(d, dict):
for k, v in d.items():
if k=='_type':
yield v
else:
yield from extract_keys(v)
elif isinstance(d, list):
for v in d:
yield from extract_keys(v)
out = list(extract_keys(d)) # variable `d` is your dict from your question
print(out)
Prints:
['FunctionDef', 'arguments', 'arg', 'Expr', 'Str', 'Assign', 'Name', 'Store', 'Num', 'For', 'Assign', 'Name', 'Store', 'BinOp', 'BinOp', 'BinOp', 'Name', 'Load', 'BitXor', 'Call', 'Name', 'Load', 'Name', 'Load', 'Add', 'BinOp', 'BinOp', 'Name', 'Load', 'RShift', 'Num', 'Add', 'BinOp', 'Name', 'Load', 'LShift', 'Num', 'BitAnd', 'Num', 'Name', 'Load', 'Name', 'Store', 'Return', 'Name', 'Load']