code: def _fetch_json(self, path: str) -> Dict[str, Any]:
      try:
          tmpfile = tempfile.mkstemp(suffix=".json")[1]
          logger.info(tmpfile)
          self.file_manager.download(path, tmpfile)
  
          with open(tmpfile, "rt") as f:
              data = json.load(f)
  
          os.unlink(tmpfile)
          return data
      except Exception as e:
          raise FetchResultError(
              f"Could not fetch results from session: {e}"
          ) from e
  
imports: import json
  import os
  import tempfile
  from typing import TYPE_CHECKING, Any, Dict, Optional
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.command_runner.command_runner import CommandRunner
  from ray_release.exception import ClusterNodesWaitTimeout, CommandError, CommandTimeout, LocalEnvSetupError, LogsError, FetchResultError
  from ray_release.file_manager.file_manager import FileManager
  from ray_release.job_manager import JobManager
  from ray_release.logger import logger
  from ray_release.util import format_link, get_anyscale_sdk
  from ray_release.wheels import install_matching_ray_locally
label_desc: Use image node_id 9 for calling the JobRunner obj's underlying member method code with example usage: obj._fetch_json(path) and returns: data