Вот реализация сериализуемого словаря , для справки.
Если значения в словаре всегда сериализуемы, тогда вы можете использовать сериализуемый словарь. Если это не так, не существует действительно хорошего решения для этого - если вы не можете контролировать то, что входит в словарь, вы не можете гарантировать, что сможете его сериализовать.
Если вы заранее знаете возможные типы, но не можете изменить их, чтобы они были сериализуемыми, возможно, вы можете создать объекты форматирования для каждого типа, а затем использовать поиск, чтобы найти правильный объект форматирования для каждого значения в словаре. .