How to serialize SqlAlchemy result to JSON?

后端 未结 27 2056
说谎
说谎 2020-11-22 09:59

Django has some good automatic serialization of ORM models returned from DB to JSON format.

How to serialize SQLAlchemy query result to JSON format?

I tried

27条回答
  •  情书的邮戳
    2020-11-22 10:12

    The built in serializer chokes with utf-8 cannot decode invalid start byte for some inputs. Instead, I went with:

    def row_to_dict(row):
        temp = row.__dict__
        temp.pop('_sa_instance_state', None)
        return temp
    
    
    def rows_to_list(rows):
        ret_rows = []
        for row in rows:
            ret_rows.append(row_to_dict(row))
        return ret_rows
    
    
    @website_blueprint.route('/api/v1/some/endpoint', methods=['GET'])
    def some_api():
        '''
        /some_endpoint
        '''
        rows = rows_to_list(SomeModel.query.all())
        response = app.response_class(
            response=jsonplus.dumps(rows),
            status=200,
            mimetype='application/json'
        )
        return response
    

提交回复
热议问题