class_docstr: Abstract Parser class to be inherited by all StreamAlert Parsers
class_docstr_tok: ["Abstract","Parser","class","to","be","inherited","by","all","StreamAlert","Parsers"]
docstr: Extract records from the original json payload using a provided JSON path
  
  Args:
      payload (dict): The parsed json data
  
  Returns:
      list: A list of JSON records extracted via JSON path
docstr_tok: ["Extract","records","from","the","original","json","payload","using","a","provided","JSON","path","Args",":","payload","(","dict",")",":","The","parsed","json","data","Returns",":","list",":","A","list","of","JSON","records","extracted","via","JSON","path"]
code: def _json_path_records(self, payload):
      """Extract records from the original json payload using a provided JSON path
  
      Args:
          payload (dict): The parsed json data
  
      Returns:
          list: A list of JSON records extracted via JSON path
      """
      # Handle jsonpath extraction of records
      LOGGER.debug("Parsing records with JSONPath: %s", self._json_path)
  
      result = jmespath.search(self._json_path, payload)
      if not result:
          return []
  
      if not isinstance(result, list):
          result = [result]
  
      return result
  
imports: from abc import ABCMeta, abstractmethod
  from copy import deepcopy
  import csv
  from fnmatch import fnmatch
  import json
  import logging
  import re
  import io
  import jmespath
  from streamalert.shared.logger import get_logger
label_desc: Use image node_id 25 for calling the ParserBase obj's underlying member method code with example usage: obj._json_path_records(payload) and returns: result, list