class_docstr: Get JSON properties from PropertyFiles or S3 location.
  
  Attributes:
      step_name (str): The step name from which to get the property file.
      property_file (Optional[Union[PropertyFile, str]]): Either a PropertyFile instance
          or the name of a property file.
      json_path (str): The JSON path expression to the requested value.
      s3_uri (Optional[sagemaker.workflow.functions.Join]): The S3 location from which to fetch
          a Json file. The Json file is the output of a step defined with ``@step`` decorator.
      step (Step): The upstream step object which the s3_uri is associated to.
class_docstr_tok: ["Get","JSON","properties","from","PropertyFiles","or","S3","location",".","Attributes",":","step_name","(","str",")",":","The","step","name","from","which","to","get","the","property","file",".","property_file","(","Optional","[","Union","[","PropertyFile",",","str","]","]",")",":","Either","a","PropertyFile","instance","or","the","name","of","a","property","file",".","json_path","(","str",")",":","The","JSON","path","expression","to","the","requested","value",".","s3_uri","(","Optional","[","sagemaker.workflow.functions.Join","]",")",":","The","S3","location","from","which","to","fetch","a","Json","file",".","The","Json","file","is","the","output","of","a","step","defined","with","``","@","step","``","decorator",".","step","(","Step",")",":","The","upstream","step","object","which","the","s3_uri","is","associated","to","."]
docstr: The expression dict for a `JsonGet` function.
docstr_tok: ["The","expression","dict","for","a","`","JsonGet","`","function","."]
code: def expr(self):
      """The expression dict for a `JsonGet` function."""
  
      if self.property_file:
          if not isinstance(self.step_name, str) or not self.step_name:
              raise ValueError(
                  "Please give a valid step name as a string."
              )
          if isinstance(self.property_file, PropertyFile):
              name = self.property_file.name
          else:
              name = self.property_file
          return {
              "Std:JsonGet": {
                  "PropertyFile": {
                      "Get": f"Steps.{self.step_name}.PropertyFiles.{name}"
                  },
                  "Path": self.json_path,
              }
          }
  
      # ConditionStep uses a JoinFunction to provide this non-static, built s3Uri in
      # the case of Lightsaber steps.
      if self.s3_uri:
          return {
              "Std:JsonGet": {
                  "S3Uri": self.s3_uri.expr
                  if isinstance(self.s3_uri, PipelineVariable)
                  else self.s3_uri,
                  "Path": self.json_path,
              }
          }
  
file_path: sagemaker-python-sdk/src/sagemaker/workflow/functions.py
imports: from __future__ import absolute_import
  from typing import List, Union, Optional, TYPE_CHECKING
  import attr
  from sagemaker.workflow import is_pipeline_variable
  from sagemaker.workflow.entities import PipelineVariable
  from sagemaker.workflow.execution_variables import ExecutionVariable
  from sagemaker.workflow.parameters import Parameter
  from sagemaker.workflow.properties import PropertyFile
label_desc: Use image node_id 2 for calling the JsonGet obj's underlying member method code with example usage: obj.expr() and returns: dict, dict