Код потерял форматирование, так как вы его привели здесь как текст. Из-за этого его сложнее протестировать. Кроме того, никто не знает, что у вас хранится в структуре self.resultDict['materials']. Используйте print(), чтобы посмотреть, что собой представляла структура после первого if -- скорее он виноват, чем следующие за ним два.
Замечу также, что в Python вместо индексации вида
for i in range(len(some_list))
правильнее использовать "курсор" в виде самого элемента:
for element in some_list
а если нужно использовать и элементы, и их индексацию, используйте enumerate().
Замечу также, что в Python вместо индексации вида
for i in range(len(some_list))
правильнее использовать "курсор" в виде самого элемента:
for element in some_list
а если нужно использовать и элементы, и их индексацию, используйте enumerate().