Преобразование десятичного числа Python в строку в глубоко вложенном и непредсказуемом списке

Я пытаюсь перебрать все значения в глубоко вложенном / смешанном списке и преобразовать все десятичные экземпляры в строку, чтобы я мог сохранить их в монго.

Моя попытка рекурсии достигла максимальной глубины. Я хотел бы решить это итеративно или качественно.

Это не похоже на работу, но моя последняя попытка:

def convert_decimals(root_obj):
    objs_to_convert = [root_obj]

    while objs_to_convert:
        obj = objs_to_convert.pop(0)
        for k, v in enumerate(obj):

            if len(v):
                objs_to_convert.append(v)
            elif isinstance(v, Decimal):
                obj[k] = str(v)

Пример ввода:

[
    {
        'Payments': {
            'Payment': Decimal('495.64'),
            'IsCapped': True,
            'OtherFees': Decimal('0'),
            'CapCostTotal': Decimal('27900'),
            'Name': 'TestData',
            'Program': {
                'ProgramName': u'AST',
                'Description': None
            },
            'Rate': Decimal('0.0254'),
            'APR': Decimal('2.54'),
            'AppliedIds': [

            ],
            'Tax': Decimal('0')
        }
    }
]

После преобразования десятичные экземпляры должны быть строками

Ответы на вопрос(2)

Ваш ответ на вопрос