code: def json2space(in_x, name=NodeType.ROOT):
      """
      Change json to search space in hyperopt.
  
      Parameters
      ----------
      in_x : dict/list/str/int/float
          The part of json.
      name : str
          name could be NodeType.ROOT, NodeType.TYPE, NodeType.VALUE or NodeType.INDEX, NodeType.NAME.
      """
      out_y = copy.deepcopy(in_x)
      if isinstance(in_x, dict):
          if NodeType.TYPE in in_x.keys():
              _type = in_x[NodeType.TYPE]
              name = name + "-" + _type
              _value = json2space(in_x[NodeType.VALUE], name=name)
              if _type == "choice":
                  out_y = hp.hp.choice(name, _value)
              elif _type == "randint":
                  out_y = hp.hp.randint(name, _value[1] - _value[0])
              else:
                  if _type in ["loguniform", "qloguniform"]:
                      _value[:2] = np.log(_value[:2])
                  out_y = getattr(hp.hp, _type)(name, *_value)
          else:
              out_y = dict()
              for key in in_x.keys():
                  out_y[key] = json2space(
                      in_x[key], name + "[%s]" % str(key)
                  )
      elif isinstance(in_x, list):
          out_y = list()
          for i, x_i in enumerate(in_x):
              if isinstance(x_i, dict):
                  if NodeType.NAME not in x_i.keys():
                      raise RuntimeError(
                          "'_name' key is not found in this nested search space."
                      )
              out_y.append(json2space(x_i, name + "[%d]" % i))
      return out_y
  
imports: import copy
  import logging
  import hyperopt
  import numpy
  from schema import Optional, Schema
  from nni import ClassArgsValidator
  from nni.common.hpo_utils import validate_search_space
  from nni.tuner import Tuner
  from nni.utils import NodeType, OptimizeMode, extract_scalar_reward, split_index
label_desc: Use image node_id 1 for calling a global function with example usage: json2space(in_x, name) and returns: out_y