Для того, чтобы объекты из словаря сохранялись в json в удобном для просмотра виде, каждый класс объекта должен иметь функцию __repr__, возвращающую текстовое представление объекта.
1 2 3 4 5 6 7 8 |
class TestObj: def __init__(self, x, y): self.__x = x self.__y = y def __repr__(self): return "TestObj({x},{y})".format(x = self.__x, y = self.__y) |
Пример словаря с объектами:
1 |
datadict = {"group": {"Object1": TestObj(10,22), "Object2": TestObj(36,74)}} |
Сохранение словаря с объектами в json:
1 2 3 4 |
with open("c:/file.json", "w", encoding="utf-8") as file: import pprint pprint.pprint(datadict, indent=4, stream=file) file.close() |