df = pd.DataFrame(data)
grouped = df.groupby(['startDate', 'endDate', 'campaignCfid', 'campaignName']
    ).agg(sum)
print(grouped.reset_index().to_dict('records'))
Group By & Aggregate List of Dictionaries in Python