Skip to main content

8.0 Python: Nested Dictionaries

8.1 Nested Dictionaries

A dictionary can contain dictionaries, this is called nested dictionaries.

8.1.1 Example

Create a dictionary that contain three dictionaries:

myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}

Or, if you want to add three dictionaries into a new dictionary:

8.1.2 Example

Create three dictionaries, then create one dictionary that will contain the other three dictionaries:

child1 = {
"name" : "Emil",
"year" : 2004
}
child2 = {
"name" : "Tobias",
"year" : 2007
}
child3 = {
"name" : "Linus",
"year" : 2011
}

myfamily = {
"child1" : child1,
"child2" : child2,
"child3" : child3
}

8.2 Access Items in Nested Dictionaries

To access items from a nested dictionary, you use the name of the dictionaries, starting with the outer dictionary:

8.2.1 Example

Print the name of child 2:

myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}

print(myfamily["child2"]["name"])

8.3 Loop Through Nested Dictionaries

You can loop through a dictionary by using the items() method like this:

8.3.1 Example

Loop through the keys and values of all nested dictionaries:

myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}

for x, obj in myfamily.items():
print(x)

for y in obj:
print(y + ':', obj[y])