SQLAlchemy Model Object to json 对象转 JSON

将SQLAlchemy Model Object 转成 JSON

from sqlalchemy.orm import class_mapper

def serialize(model):
  """Transforms a model into a dictionary which can be dumped to JSON."""
  # first we get the names of all the columns on your model
  columns = [c.key for c in class_mapper(model.__class__).columns]
  # then we return their values in a dict
  return dict((c, getattr(model, c)) for c in columns)

将对象传入就会返回一个 dict 类型的数据,再将它转成 json 就可以了。

使用方法

d=serialize(SQLAlchemyModelobject)
jsondumps(d)

思路来源 http://stackoverflow.com/questions/10252010/serializing-python-object-instance-to-json

 

Qurey 查询后的结果变成 JSON

单个对象

def to_json(model):
    """ Returns a JSON representation of an SQLAlchemy-backed object. """
    json = {}
    # json['fields'] = {}
    # json['pk'] = getattr(model, 'id')
    for col in model._sa_class_manager.mapper.mapped_table.columns:
        # json['fields'][col.name] = getattr(model, col.name)
        json[col.name] = getattr(model, col.name)
    # return dumps([json])
    return json

一组对象


def to_json_list(model_list):
    json_list = []
    for model in model_list:
        json_list.append(to_json(model))
    return json_list

使用演示

#读取一个资源
    def get(self,id):
        session = common.db.getDBSession()
        appkey=session.query(AppKey).filter_by(id=id).first()
        session.close()
        result= common.util.to_json(appkey)
        return result

    #获取全部资源
    def get(self):
        session =common.db.getDBSession()
        appkeylist =session.query(AppKey).all()
        session.close()
        result = common.util.to_json_list(appkeylist)
        return result

 

转载于:https://my.oschina.net/caomenglong/blog/715806

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值