In [2]:
import axon
from collections import namedtuple

In [13]:
text = """
person { name:"Иванов" age:30 }
"""
Person = namedtuple("Person", "name age")

@axon.factory("person")
def Person_factory(attrs, vals):
    return Person(**attrs)


vals = axon.loads(text, mode="strict")
print(vals[0])


Person(name='Иванов', age=30)

In [15]:
text2 = """
persons {
   {name: "Иванов" age: 30}
   {name:  "Сидоров" age:33}
}
"""

@axon.factory("persons")
def persons_factory(attra, vals):
    return [Person(**val) for val in vals]


vals = axon.loads(text2, mode="strict")
print(vals)


[[Person(name='Иванов', age=30), Person(name='Сидоров', age=33)]]

In [ ]: