Let's say I have a Python dictionary that looks like the one below:

```
sample_dict = {'Grade': {'Aya':4.0, 'John':3.0, 'Anna':1.0},
     'Address': {'Aya':'California', 'John':'Canada', 'Anna':'Mexico'},
     'School': 'Harvard University',
     'Nationality':{'Aya':'Japanese', 'John':'American', 'Anna':'American'}
    }

```

I'm quite confused how I could manipulate the code where I'll just pass down the parameter to search *e.g. Aya* and it will result to something like below:

```
Grade: Aya: 4.0
Address: Aya:California
School: Harvard University
Nationality: Aya: Japanese

```

Better yet:

```
Aya
Grade: 4.0
Address: California
School: Harvard University
Nationality: Japanese

```

Here's what I've started out:

```
def get_info(name):
    for key, value in sample_dict:
        print(name)
        if type(value) is dict:
            for people, equivalent in value:
                if(equivalent[name]):
                    print key, equivalent[name] 
                else:
                    print ("Not Found!")
        else:
            print key, value[key]

```

> 
> 
> > 
> > {'Grade': {'John': 3.0, 'Aya': 4.0, 'Anna': 1.0}, 'Nationality': {'John': 'American', 'Aya': 'Japanese', 'Anna': 'American'}, 'School':
> >  'Harvard University', 'Address': {'John': 'Canada', 'Aya':
> >  'California', 'Anna': 'Mexico'}}
> > 
> > 
> > 
> 
> 
> 
> 
> ---
> 
> 
> ValueError Traceback (most recent call
>  last) in ()
>  19 print key, value[key]
>  20 
>  ---> 21 get\_info('Aya')
> 
> 
>  in get\_info(name)
>  8 
>  9 def get\_info(name):
>  ---> 10 for key, value in sample\_dict:
>  11 print(name)
>  12 if type(value) is dict:
> 
> 
> ValueError: too many values to unpack
> 
> 
>