def get_changed_cell(curr_records, prev_records):
    """
    Parameters
    ----------
    curr_records : list of dicts

    prev_records : list of dicts

    Returns
    -------
    row_num : int
        Index of the changed row.

    col_name : str
        Key of the changed column.

    Notes
    -----
    Assumes at most one cell changed. If no cell changed, return `None, None`.
    """
    records = zip(curr_records, prev_records)
    for i, (curr_record, prev_record) in enumerate(records):
        keys = set(list(curr_record.keys()) + list(prev_record.keys()))
        for key in keys:
            if curr_record.get(key) != prev_record.get(key):
                return i, key
    return None, None