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