DTPlayer, функция должна принимать на вход словарь и целевой список, находить ключи верхнего слоя входящего словаря, проверять каждый на валидность, валидные складывать в список, преобразуя формат, затем вызывать эту же функцию (саму себя), передавая на вход
значение, соответствующее текущему ключу, если это значение - словарь,
DTPlayer, попытайтесь сделать хоть что-то самостоятельно. И если не получится, приносите свою попытку и тогда будет предмет для обсуждения. А пока - см.п.5.12
или ds.RV_Lnk_Document_X_PostedDocument_Purchases и посмотреть, вернёт ли ченьть.
Ну или лезть смотреть структуру таблиц, есть ли там такое поле вообще. У вас в коде именно такого поля не видно, так что можно только догадываться.
gmg_gadmag, тогда приходи со своей попыткой решить проблему, с минимально рабочим кодом, пусть ошибочным. За готовым решением или обучением - на freelance.habr.com
Тут же многое зависит от нагрузки. Если твой бот будет раз в месяц заходить и выходить, то должно хватить. А если у тебя десять миллионов клиентов ломанутся каждый день, то может и надо будет чуток памяти добавить… :/