Если вы в порядке с ООП, подумайте о создании метода для каждого класса, который выводит сериализованную версию (используя pickle) в файл. Затем добавьте второй метод для загрузки в экземпляр данных, и если в маринованном файле вы вызываете метод загрузки вместо обрабатывающего. Я использую этот подход для ML, и это действительно запустило мой рабочий процесс.
Другой подход pythonic был бы
def sort_dict(my_dict):
return sorted(my_dict.items(), key=lambda x :x[1])
Эта функция отсортирует любой словарь рекурсивно его ключом. Таким образом, если какое-либо значение в словаре будет также словарем, то это также будет отсортировано по его ключу. Если Вы работаете на CPython 3.6 или больше, чем простое изменение для использования dict
, а не OrderedDict
может быть внесено.
from collections import OrderedDict
def sort_dict(d):
items = [[k, v] for k, v in sorted(d.items(), key=lambda x: x[0])]
for item in items:
if isinstance(item[1], dict):
item[1] = sort_dict(item[1])
return OrderedDict(items)
#return dict(items)