On Thu, Oct 16, 2008 at 12:19 PM, John Townsend <[EMAIL PROTECTED]> wrote: > I'm working with a Dictionary of Dicts. Something like this: > > myDict = { > 'TestName': { > 'FileName':{ > > 'ct_init':1234, > > 'psl_init':5678, > > 'total_test_time':7890, > > 'psl_shutdown':8765, > > 'ct_shutdown':9021, > > 'total_time':3421, > }, > } > } > > Accessing values is pretty straightforward (nice change from my Perl days). > For example: > > myDict['TestName']['FileName']['ct_shutdown'] > > in Python interpreter yields > > 9021 > > However, when I try to add, let's say, a new FileName entry, I end up > replacing the previous FileName entry. > > In Python interpreter, I try: > > myDict['TestName'] = {'NewFileName': {}, } > > I get > > {'TestName': {'NewFileName': {}}}
Right, this clobbers the existing entry with this new blank one. This is evidenced by the fact that you're performing an _assignment_ on a dictionary key rather than calling a _mutator_ method on a dictionary value. A dictionary has only one value for a given key (but importantly, that value can be a list). > > So, how do I add a new entry without replacing the old entry? Switch to a Dict of Lists of Dicts and append to the appropriate list when adding the new entry, or preferably, start using objects instead of ad-hoc nested dictionaries. Regards, Chris -- Follow the path of the Iguana... http://rebertia.com > > Thanks > > John Townsend (5-7204), > AGM-FL and PSL QE Lead > > > > -- > http://mail.python.org/mailman/listinfo/python-list > > -- http://mail.python.org/mailman/listinfo/python-list