el proposito de persona: si el array propiedad no etsa vacio, por cada propiedad revizar array gravamenes, si el array gravamenes es mayor a 0 se deben considerar aquellos registros en los que gravamens.cod_operacion = ia2, de estos registros se deben considerar aquellos en los que el array partes sea igual a partes.cod_persona =2, de estas registros se debe tomar el campo gravamenes.monto
def persona(propiedades): caja = [] for propiedad in propiedades: gravamenes = propiedad['gravamenes'] if len(gravamenes) > 0: for gravamen in gravamenes: if gravamen['cod_operacion'] == 'ia2': partes = gravamen['partes'] for parte in partes: if parte['cod_persona'] == 2: monto = gravamen['monto'] caja.append(monto) return caja propiedades = [ { 'gravamenes': [ { 'monto': '100', 'gravamen': 'R', 'cod_operacion': 'ia2', 'partes': [ { 'nombre': 'CARLOS ALFREDO', 'cod_persona': 1, 'porcentaje': '33.33', 'tipo': 'P',