Tengo una base de datos SQLlite local que conecté a través del siguiente código: '''
from flask import Flask, jsonify, request from flask_sqlalchemy import SQLAlchemy from sqlalchemy import Column, Integer, String, Float import os from flask_marshmallow import Marshmallow, Schema app = Flask(__name__) basedir = os.path.abspath(os.path.dirname(__file__)) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'planets.db') db = SQLAlchemy(app) ma = Marshmallow(app) @app.cli.command('db_create') def db_create(): db.create_all() print('Database created!') @app.cli.command('db_drop') def db_drop(): db.drop_all() print('Database dropped!') @app.cli.command('db_seed') def db_seed(): mercury = Planet(planet_name='Mercury', planet_type='Class D', home_star='Sol', mass=2.258e23, radius=1516, distance=35.98e6) venus = Planet(planet_name='Venus', planet_type='Class K', home_star='Sol', mass=4.867e24, radius=3760, distance=67.24e6) earth = Planet(planet_name='Earth', planet_type='Class M', home_star='Sol', mass=5.972e24, radius=3959, distance=92.96e6) db.session.add(mercury) db.session.add(venus) db.session.add(earth) test_user = User(first_name='William', last_name='Herschel', email='test@test.com', password='P@ssw0rd') db.session.add(test_user) db.session.commit() print('Database seeded!') @app.route('/planets', methods=['GET']) def planets(): planets_list = Planet.query.all() result = planets_schema.dump(planets_list) return jsonify(result.data) # database models class User(db.Model): __tablename__ = 'users' id = Column(Integer, primary_key=True) first_name = Column(String) last_name = Column(String) email = Column(String, unique=True) password = Column(String) class Planet(db.Model): __tablename__ = 'planets' planet_id = Column(Integer, primary_key=True) planet_name = Column(String) planet_type = Column(String) home_star = Column(String) mass = Column(Float) radius = Column(Float) distance = Column(Float) class UserSchema(ma.Schema): class Meta: fields = ('id', 'first_name', 'last_name', 'email', 'password') class PlanetSchema(ma.Schema): class Meta: fields = ('planet_id', 'planet_name', 'planet_type', 'home_star', 'mass', 'radius', 'distance') user_schema = UserSchema() users_schema = UserSchema(many=True) planet_schema = PlanetSchema() planets_schema = PlanetSchema(many=True) if __name__ == '__main__': app.run() ''' I have tried passing return statement with return results[0] and it does work, but when i try to jsonify the same results, I am getting an error that it has no data.Me encantaría cualquier entrada que me ayude a resolver este problema.

He intentado reinstalar virtualenv y también todos los paquetes, pero no puedo entender por qué .data no parece funcionar. Los otros problemas a los que me enfrento realmente no son el problema, porque todos los demás aspectos del código funcionan, incluida la creación de db, la inserción de registros y la eliminación de tablas. La consulta también parece funcionar, ya que si uso la matriz dict para acceder a la misma. Pero toda la cadena json no parece funcionar.
Elimine .data de su código y simplemente escriba return jsonify(result) . Esto eliminaría el error de atributo.
La mejor solución es usar las siguientes bibliotecas para resolver este problema. Usar Flask-Marshmallow me ayudó a serializar y administrar los datos en mi formato json aquí.
No necesita acceder al atributo .data . Dado que el volcado ya devuelve los datos. Así que intente eliminar .dump y luego intente ejecutar la aplicación. Debería darte la salida que estás buscando.