code: def data_has_value_from_list(data, needle_list):
      """Recursively search for any values that are in the specified list
  
      Args:
          data (dict, list, primitive)
          needle_list (list)
  
      Returns:
          (bool) True or False if found
      """
      if isinstance(data, list):
          return any(
              data_has_value_from_list(item, needle_list)
              for item in data
          )
  
      if isinstance(data, dict):
          return any(
              data_has_value_from_list(v, needle_list)
              for v in data.values()
          )
  
      if not data:
          return False
      return matches_any(data, needle_list)
  
file_path: streamalert/rules/helpers/base.py
imports: from fnmatch import fnmatch
  import logging
  import json
  import random
  import time
  import pathlib2
  from streamalert.shared.utils import get_first_key, get_keys, in_network, valid_ip
label_desc: Use image node_id 9 for calling a global function with example usage: data_has_value_from_list(data, needle_list) and returns: matches_any, any, any, False