def _InnerAppendData(self, prev_col_values, data, col_index):
<EOL>if col_index >= len(self.__columns):<EOL><INDENT>raise DataTableException("<STR_LIT>")<EOL><DEDENT>if self.__columns[col_index]["<STR_LIT>"] == "<STR_LIT>":<EOL><INDENT>prev_col_values[<NUM_LIT:0>][self.__columns[col_index]["<STR_LIT:id>"]] = data<EOL>self.__data.append(prev_col_values)<EOL>return<EOL><DEDENT>if self.__columns[col_index]["<STR_LIT>"] == "<STR_LIT>":<EOL><INDENT>if not hasattr(data, "<STR_LIT>") or isinstance(data, dict):<EOL><INDENT>raise DataTableException("<STR_LIT>" %<EOL>type(data))<EOL><DEDENT>for value in data:<EOL><INDENT>if col_index >= len(self.__columns):<EOL><INDENT>raise DataTableException("<STR_LIT>")<EOL><DEDENT>prev_col_values[<NUM_LIT:0>][self.__columns[col_index]["<STR_LIT:id>"]] = value<EOL>col_index += <NUM_LIT:1><EOL><DEDENT>self.__data.append(prev_col_values)<EOL>return<EOL><DEDENT>if not isinstance(data, dict):<EOL><INDENT>raise DataTableException("<STR_LIT>" %<EOL>type(data))<EOL><DEDENT>if self.__columns[col_index]["<STR_LIT>"] == self.__columns[-<NUM_LIT:1>]["<STR_LIT>"]:<EOL><INDENT>for col in self.__columns[col_index:]:<EOL><INDENT>if col["<STR_LIT:id>"] in data:<EOL><INDENT>prev_col_values[<NUM_LIT:0>][col["<STR_LIT:id>"]] = data[col["<STR_LIT:id>"]]<EOL><DEDENT><DEDENT>self.__data.append(prev_col_values)<EOL>return<EOL><DEDENT>if not data.keys():<EOL><INDENT>self.__data.append(prev_col_values)<EOL><DEDENT>else:<EOL><INDENT>for key in sorted(data):<EOL><INDENT>col_values = dict(prev_col_values[<NUM_LIT:0>])<EOL>col_values[self.__columns[col_index]["<STR_LIT:id>"]] = key<EOL>self._InnerAppendData((col_values, prev_col_values[<NUM_LIT:1>]),<EOL>data[key], col_index + <NUM_LIT:1>)<EOL><DEDENT><DEDENT>
Inner function to assist LoadData.