python
import yaml
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name={self.name}, age={self.age})"
def person_constructor(loader, node):
data = loader.construct_yaml_map(node)
name = data.get("name")
age = data.get("age")
return Person(name, age)
yaml.add_constructor('!person', person_constructor)
data = yaml.load("""
- !person
name: John
age: 30
- !person
name: Alice
age: 25
""")
for person in data:
print(person)
Person(name=John, age=30)
Person(name=Alice, age=25)