This is sort of a followup question to one of my previous questions. I have some dictionaries where I need to look at every value they contain and if that value is a datetime I need to format it a specific way. I also need to be able to recurse into nested dictionaries and lists. This is what I have so far:
def fix_time(in_time):
    out_time = '{}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}'.format(in_time.year, in_time.month, in_time.day, in_time.hour, in_time.minute, in_time.second)
    return out_time
def fix_recursive(dct):
    for key, value in dct.items():
        if isinstance(value, datetime.datetime):
            mydict[key] = fix_time(value)
        elif isinstance(value, dict):
            fix_recursive(value)    
mydict={
    'Field1':'Value1'
    'SomeDateField1':1516312413.729,
    'Field2':'Value2',
    'Field3': [
        {
           'Subfield3_1':'SubValue1',
           'SubDateField3_1':1516312413.729
        },
        {
           'Subfield3_2':'SubValue2',
           'SubDateField3_2':1516312413.729
        },
        {
           'Subfield3_3':'SubValue3',
           'SubDateField3_3':1516312413.729
        }
     ],
     'Field4': {
        'Subfield4_1':'SubValue1',
        'SubDateField4_1':1516312413.729
     }
}
fix_recursive(mydict)
This works great for dictionaries and nested dictionaries, but not so much for lists. So in the above example fix_recursive would correct SomeDateField1 and SubDateField4_1, but not SubDateField3_1, SubDateField3_2, or SubDateField3_3. Also, as I don't know what the input will look like before I get it, I am trying to create a function that could get values in listed nested 3 or 4 levels deep.
And suggestions would be appreciated.
Thanks!
 
     
    