2023年7月10日发(作者:)
sqlalchemy查询结果转为json并通过restapi接⼝返回的解决⽅案还是先说背景:python3.6, SqlAlchemy2.3.2遇到的问题:通过sqlalchemy查询的结果,如果直接通过jsonify函数转为json会报错:TypeError: Object of type 'Comment' is not JSON serializable⽹上有各种⽅案,例如增加⼀个AlchemyEncoder类来专门处理,但是本⼈试过都不⾏,以下⽅案才是正解:1. 需要在模型类中增加to_json函数:class Comment(): __tablename__ = 't_comment' id = (r, primary_key=True, autoincrement=True) content = (, nullable=False) create_time = (me, nullable=False, default=) author_id = (r, nKey('t_')) question_id = (r, nKey('t_')) author = onship('User', backref=f('comments')) question = onship('Question', backref=f('comments', order_by=create_())) def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict2. 将查询的结果,⼀次通过to_json⽅法放到数组中,在通过jsonify函数返回到前台:# rest api接⼝,并将查询结果转化为json@('/comments', methods=['GET'])def comments(): comments = (Comment).all() result = [] for comment in comments: (_json()) return jsonify(result), 200
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688932388a184944.html
评论列表(0条)