import csv


def csv_dict_list(grid_data_path):
    """
    Read GRID data from .csv to a dict of org_info items.
    :param grid_data_path: Path to where GRID data is stored.
    :return: dictionary of grid info items.
    """
    # Open variable-based csv, iterate over the rows and map values to a list of dictionaries containing key/value pairs
    reader = csv.DictReader(open(grid_data_path, 'r'))
    grid_info_all = dict()
    for line in reader:
        # check there are no key duplicates
        assert line['ID'] not in grid_info_all.keys(), 'key {} already stored'.format(line['ID'])
        # dict keys are org names
        grid_info_all[line['ID']] = line
    return grid_info_all