I am experiencing an unexpected behavior with this data structure.
class IncomeVerification(object):
data = {'IncomeYears': []}
def __init__(self, income_years):
for year in income_years:
new_year = IncomeYear(year).data
self.data['IncomeYears'].append(new_year)
class IncomeYear(object):
data = {'IncomeYear': {'Year': None}}
def __init__(self, year, reported_income=None):
self.data['IncomeYear']['Year'] = year
income_years = ['2014', '2013', '2012', '2011']
foo = IncomeVerification(income_years)
print foo.data
This returns,
{'IncomeYears': [{'IncomeYear': {'Year': '2011'}}, {'IncomeYear': {'Year': '2011'}}, {'IncomeYear': {'Year': '2011'}}, {'IncomeYear': {'Year': '2011'}}]}
I am expecting,
{'IncomeYears': [{'IncomeYear': {'Year': '2014'}}, {'IncomeYear': {'Year': '2013'}}, {'IncomeYear': {'Year': '2012'}}, {'IncomeYear': {'Year': '2011'}}]}
I believe the nested nature of my dictionaries creates unique key problems and therefore overwrites existing entries. Any ideas on how to modify the call above to get my desired result?
Thank you.