Nie wiem dlaczego program nie chcę zwracać wartości dla except.

do funkcji getData() przez parametr content przekazano listę zawierającą manifest rozładunku statku. Kolejnymi elementami listy są słowniki z danymi o zawartości poszczególnych kontenerów. Kolejność elementów listy odpowiada kolejności w jakiej kontenery były rejestrowane w systemie magazynowym.

Funkcja ma zwracać wartość określonej właściwości określonego kontenera. Pozycję danych kontenera na liście przekazano przez parametr pos, zaś klucz elementu słownika, którego wartość ma zwracać funkcja, przekazano przez parametr key.

Jeżeli w liście nie ma elementu o podanym numerze, funkcja powinna zwrócić wartość "container not found", zaś jeżeli istniejący element listy nie zawiera podanego klucza, funkcja powinna zwrócić wartość "key not found".

Kod mojego autorstwa:
def getData(content, pos, key):

try:
for i in content:
for j in i:
if j == key:
return content[pos][key]

except IndexError:
return "container not found"

except KeyError:
return "key not found"

Przykładowe dane:

FAILED getData([...], 5, weight): Result: None Expected: 'container not found'

PASS getData([...], 2, item): Result: 'printers' Expected: 'printers'

PASS getData([...], 8, item): Result: 'container not found' Expected: 'container not found'

FAILED getData([...], 4, weight): Result: None Expected: 'key not found'

PASS getData([...], 5, item): Result: 'oranges' Expected: 'oranges'

PASS getData([...], 7, ammount): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 6, unit): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 7, item): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 7, ammount): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 0, item): Result: 'desks' Expected: 'desks'

FAILED getData([...], 10, weight): Result: None Expected: 'container not found'

PASS getData([...], 5, unit): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 10, item): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 9, ammount): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 6, unit): Result: 'key not found' Expected: 'key not found'

PASS getData([...], 2, unit): Result: 'key not found' Expected: 'key not found'

PASS getData([...], 9, ammount): Result: 'container not found' Expected: 'container not found'

PASS getData([...], 0, unit): Result: 'tonne' Expected: 'tonne'

FAILED getData([...], 3, weight): Result: None Expected: 'key not found'

PASS getData([...], 8, ammount): Result: 'container not found' Expected: 'container not found'