code: def process_node(node):
      
      value = node['value']
      mname = node['name']
      typeid = node['typeid']
      if typeid == 52: # StructDataValue
          obj = {}
          for el in value['elements']:
              key, val = process_node(el)
              obj[key] = val
  
          if value['struct_type'] != 'dict':
              # Value is not a dict
              klass = objimp.import_object(value['struct_type'])
              newobj = klass.__new__(klass)
              if hasattr(newobj, '__setstate__'):
                  newobj.__setstate__(obj)
              else:
                  newobj.__dict__ = obj
              obj = newobj
      elif typeid == 9:
          data = value['data']
          dim = value['dimension']
          shape = dim['height'], dim['width']
          obj = data
      elif typeid == 90: # StructDataValueList
          obj = []
          for el in value:
              sobj = {}
              for sel in el['elements']:
                  key, val = process_node(sel)
                  sobj[key] = val
              obj.append(sobj)
  
      elif typeid == 45: # Frame
          obj = dataframe.DataFrame(frame=os.path.abspath(value['path']))
      else:
          obj = value
  
      return mname, obj
docs: Process a node in result.json structure