matchande_fiskar = [my_fisk for my_fisk in data['fiskar'] if check_fish(my_fisk, result["fisk"]) ]
ej_matchande_fiskar =[my_fisk for my_fisk in data['fiskar'] if not check_fish(my_fisk, result["fisk"]) ]
om du ser till att check_fish inte kastar något fel dvs. flytta in try-catch i den metoden och om det blir exception så returnerar du False.
Alternativt så kan du t.ex. returnera 0 för ingen match, 1 för match och 2 för exception och göra:
matchande_fiskar = [my_fisk for my_fisk in data['fiskar'] if check_fish(my_fisk, result["fisk"]) == 1 ]
ej_matchande_fiskar =[my_fisk for my_fisk in data['fiskar'] if check_fish(my_fisk, result["fisk"]) == 0 ]
ej_fiskar = [my_fisk for my_fisk in data['fiskar'] if check_fish(my_fisk, result["fisk"]) == 2 ]
tror det ska fungera ... har dock inte testat