code: def convert_sample_to_dict(
      self, samples
  ) -> Union[List[dict], List[List[dict]]]:
      all_operations_new_params: List[List[dict]] = list()
      for sample in samples:
          new_params_per_operation: List[Union[dict, None]] = list()
          border_index = 0
          for _, params_names in self.names_per_node.items():
              if params_names is not None:
                  new_params_values_per_operation = sample[
                      border_index : border_index + len(params_names)
                  ]
                  node_params = dict(
                      zip(params_names, new_params_values_per_operation)
                  )
                  new_params_per_operation.append(node_params)
                  border_index += len(params_names)
              else:
                  new_params_per_operation.append(None)
  
          cleaned_new_params_per_params = self.clean_sample_variables(
              new_params_per_operation
          )
          all_operations_new_params.append(
              cleaned_new_params_per_params
          )
  
      return all_operations_new_params
  
imports: import json
  from abc import abstractmethod
  from os.path import join
  from typing import List, Union
  from fedot.core.utils import fedot_project_root
  from fedot.utilities.custom_errors import AbstractMethodNotImplementError
label_desc: Use image node_id 2 for calling the MultiOperationsProblem obj's underlying member method code with example usage: obj.convert_sample_to_dict(samples) and returns: all_operations_new_params