Flask-Restful - Return json with nested array Flask-Restful - Return json with nested array flask flask

Flask-Restful - Return json with nested array


I believe you need to manually create a dictionary for users. Marshal has never worked for me in this manner (this is assuming your books query is returning rows).

Try something like this:

books_fields = {    'id': fields.Integer,    'type' : fields.String,    'created_at': fields.DateTime,    'user_id' : fields.Integer}users_fields = {    'id': fields.Integer,    'name' : fields.String,    'created_at': fields.DateTime,    'books': fields.List(fields.Nested(books_fields))}users_dict = {}users = session.query(model.Users).outerjoin(model.Cities)         .filter_by(weather = args.weather).all()for user in users:    books_dict = {}    books = session.query(model.Books).outerjoin(model.Users)             .filter_by(user_id = user.id).all()    for book in books:        book_dict = {            'id': book.id,            'type': book.type,            'created_at': book.created_at        }        books_dict.append(book_dict)    user_dict = {        'id': user.id,        'name': user.name,        'created_at': user.created_at,        'books': books_dict    }    users_dict.append(user_dict)return {'users': marshal(users_dict, users_fields)}, 200