<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _idx_col_by_name(table):
 """ Iter over columns list. Turn indexed-by-num list into an indexed-by-name dict. Keys are the variable names. :param dict table: Metadata :return dict _table: Metadata """

    _columns = OrderedDict()

    # Iter for each column in the list
    try:
        for _column in table["columns"]:
            try:
                _name = _column["variableName"]
                if _name in _columns:
                    _name = get_appended_name(_name, _columns)
                _columns[_name] = _column
            except Exception as e:
                print("Error: idx_col_by_name: inner: {}".format(e))
                logger_jsons.info("idx_col_by_name: inner: {}".format(e))

        table["columns"] = _columns
    except Exception as e:
        print("Error: idx_col_by_name: {}".format(e))
        logger_jsons.error("idx_col_by_name: {}".format(e))

    return table