code: def find_objects(self, obj):
          
          objects = []
  
          if isinstance(obj, dict):
              # obj is a dictionary, so it is a potential match...
              object_type = obj.get('_type')
              if object_type == self.type:
                  # Found a match!
                  objects.append(obj)
              else:
                  # Not a match. Check each value of the dictionary for matches.
                  for sub_object in six.itervalues(obj):
                      objects.extend(self.find_objects(sub_object))
          elif isinstance(obj, list):
              # obj is a list. Check each element of the list for matches.
              for sub_object in obj:
                  objects.extend(self.find_objects(sub_object))
  
          return objects
docs: Find all objects in obj that match the type of the type node.
  
          :param obj: A dictionary or list of dictionaries to search, recursively
          :type obj: union[dict, list[dict]]
  
          :return: a list of dictionary objects that have a "_type" key value that matches the type of this node.
          :rtype: list[dict]