code: def _get_json_content_from_openml_api(
      url: str,
      error_message: Optional[str],
      data_home: Optional[str],
      n_retries: int = 3,
      delay: float = 1.0,
  ) -> Dict:
      """
      Loads json data from the openml api.
  
      Parameters
      ----------
      url : str
          The URL to load from. Should be an official OpenML endpoint.
  
      error_message : str or None
          The error message to raise if an acceptable OpenML error is thrown
          (acceptable error is, e.g., data id not found. Other errors, like 404's
          will throw the native error message).
  
      data_home : str or None
          Location to cache the response. None if no cache is required.
  
      n_retries : int, default=3
          Number of retries when HTTP errors are encountered. Error with status
          code 412 won't be retried as they represent OpenML generic errors.
  
      delay : float, default=1.0
          Number of seconds between retries.
  
      Returns
      -------
      json_data : json
          the json result from the OpenML server if the call was successful.
          An exception otherwise.
      """
  
      @_retry_with_clean_cache(url, data_home=data_home)
      def _load_json():
          with closing(
              _open_openml_url(
                  url, data_home, n_retries=n_retries, delay=delay
              )
          ) as response:
              return json.loads(response.read().decode("utf-8"))
  
      try:
          return _load_json()
      except HTTPError as error:
          # 412 is an OpenML specific error code, indicating a generic error
          # (e.g., data not found)
          if error.code != 412:
              raise error
  
      # 412 error, not in except for nicer traceback
      raise OpenMLError(error_message)
  
imports: import gzip
  import hashlib
  import json
  import os
  import shutil
  import time
  from contextlib import closing
  from functools import wraps
  from os.path import join
  from tempfile import TemporaryDirectory
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  from urllib.error import HTTPError, URLError
  from urllib.request import Request, urlopen
  from warnings import warn
  import numpy
  from ..utils import Bunch, check_pandas_support
  from ..utils._param_validation import Hidden, Integral, Interval, Real, StrOptions, validate_params
  from .None import get_data_home
  from ._arff_parser import load_arff_from_gzip_file
label_desc: Use image node_id 5 for calling a global function with example usage: _get_json_content_from_openml_api(url, error_message, data_home, n_retries, delay) and returns: _load_json, json