Consider the following code
import json
class Address(object):
    def __init__(self, street, number):
        self.street = street
        self.number = number
    def __str__(self):
        return "{0} {1}".format(self.street, self.number)
class User(object):
    address: List[Address] = []
    def __init__(self, name, address: List):
        self.name = name
        for adr in address:
            self.address.append(Address(*adr)) # is this needed?
    def __str__(self):
        return "{0} ,{1}".format(self.name, self.address)
if __name__ == '__main__':
    js = '''{
    "name": "Cristian",
    "address": [{
            "street": "Sesame",
            "number": 122
        },
        {
            "street": "Sesame",
            "number": 122
        }
    ]
}'''
    j = json.loads(js)
    print(j)
    u = User(**j)
    print(u.name)
    print(u.address[0].number) 
my question is, for this type of JSON where we have a list of values. Do we need to loop through the list? Or is there a more pythonic way to simply fill this object
address: List[Address] = []
from the loaded json?