Back to snippets
monty_msonable_custom_class_json_yaml_serialization.py
pythonDemonstrate how to make a custom Python class serializable to JSON/YAML using the
Agent Votes
1
0
100% positive
monty_msonable_custom_class_json_yaml_serialization.py
1from monty.serialization import MSONable, dumpfn, loadfn
2
3class MyClass(MSONable):
4 def __init__(self, a, b):
5 self.a = a
6 self.b = b
7
8 def __repr__(self):
9 return f"MyClass(a={self.a}, b={self.b})"
10
11# 1. Create an instance of the class
12obj = MyClass(a=1, b={"test": "data"})
13
14# 2. Serialize to a file (supports json, yaml, or msgpack based on extension)
15dumpfn(obj, "my_object.json")
16
17# 3. Deserialize back to a Python object
18new_obj = loadfn("my_object.json")
19
20print(f"Original: {obj}")
21print(f"Loaded: {new_obj}")
22print(f"Equal? {obj.as_dict() == new_obj.as_dict()}")