I have a list of nested dictionaries below which includes car sales for a given car make/model/year.
cars =
[{'id': 2, 'car':
{'car_make':'Acura', 'car_model':'TL', 'car_year':2005},'total_sales':589},
{'id': 30, 'car':
{'car_make':'Acura', 'car_model':'TL', 'car_year':2004}, 'total_sales':167},
{'id': 31, 'car':
{'car_make':'Acura', 'car_model':'Integra', 'car_year':2008}, 'total_sales':200},
{'id': 71, 'car':
{'car_make':'BMW', 'car_model':'5 Series', 'car_year':2011},'total_sales':824},
{'id': 72, 'car':
{'car_make':'BMW', 'car_model':'5 Series', 'car_year':2001}, 'total_sales':6}]
I would like to sum total sales across all years and return a total_sales dictionary with car make, model and total sales.
total_sales = {{'car_make': 'Acura', 'car_model': 'TL', 'total_sales': 756},
{'car_make': 'Acura', 'car_model': 'Integra', 'total_sales': 200},
{'car_make': 'BMW', 'car_model': '5 Series', 'total_sales': 830}}
Below is my code where I iterate over nested dictionaries and add sum the sales
total_sales = {'car_make':{}}
for car in cars:
if car['car']['car_make'] in total_sales['car_make'] and car['car']['car_model'] in
total_sales['car_model']:
total_sales['total_sales'] = total_sales['total_sales'] + car['total_sales']
else:
total_sales['car_make'] = car['car']['car_make']
total_sales['car_model'] = car['car']['car_model']
total_sales['total_sales'] = car['total_sales']
print(total_sales)
However, I am getting a running total instead of final total sales per car make and car model.
{'car_make': 'Acura', 'car_model': 'TL', 'total_sales': 589}
{'car_make': 'Acura', 'car_model': 'TL', 'total_sales': 756}
{'car_make': 'Acura', 'car_model': 'Integra', 'total_sales': 200}
{'car_make': 'BMW', 'car_model': '5 Series', 'total_sales': 824}
{'car_make': 'BMW', 'car_model': '5 Series', 'total_sales': 830}
I am new to python and appreciate if anyone can explain what I am doing wrong. I also looked at other topics including iterating over nested dictionaries but nothing seem to fit my case.