Я хочу использовать тип объекта в качестве словарного ключа с возможностью сериализации такого словаря в строку JSON, желательно.С возможностью десериализации его, а затем с помощью простой проверки «если SomeType in SomeDictionary».
Пример минимального кода, который демонстрирует проблему:
import json
class Cat():
def __init__(self, name):
self.name = name
class Dog():
def __init__(self, name):
self.name = name
pets = dict()
pets[Cat] = Cat("Tom")
pets[Dog] = Dog("Rex")
print(pets.keys())
print(json.dumps(pets))
Я получаю ошибку:
dict_keys([<class '__main__.Cat'>, <class '__main__.Dog'>])
Traceback (most recent call last):
File "python", line 17, in <module>
TypeError: keys must be a string
В строке 17 указывается строка «print (json.dumps (pets))».
Возможно ли реализовать такое поведение в Python?