code: def get_value_at(all_info, current_path, key, to_string=False):
      
      keys = key.split('.')
      if keys[-1] == 'id':
          target_obj = current_path[len(keys)-1]
      else:
          if key == 'this':
              target_path = current_path
          elif '.' in key:
              target_path = []
              for i, key in enumerate(keys):
                  if key == 'id':
                      target_path.append(current_path[i])
                  else:
                      target_path.append(key)
              if len(keys) > len(current_path):
                  target_path = target_path + keys[len(target_path):]
          else:
              target_path = copy.deepcopy(current_path)
              target_path.append(key)
          target_obj = all_info
          for p in target_path:
            try:
              if type(target_obj) == list and type(target_obj[0]) == dict:
                  target_obj = target_obj[int(p)]
              elif type(target_obj) == list:
                  target_obj = p
              elif p == '':
                  target_obj = target_obj
              else:
                try:
                  target_obj = target_obj[p]
                except Exception as e:
                  printInfo('Info: %s\n'
                            'Path: %s\n'
                            'Key: %s' % (str(all_info),
                                         str(current_path),
                                         str(key)))
                  printException(e)
                  raise Exception
            except Exception as e:
              printInfo('Info: %s\n'
                        'Path: %s\n'
                        'Key: %s' % (str(all_info),
                                     str(current_path),
                                     str(key)))
              printException(e)
              raise Exception
      if to_string:
          return str(target_obj)
      else:
          return target_obj
docs: Get value located at a given path
  
      :param all_info:
      :param current_path:
      :param key:
      :param to_string:
      :return: