Sqlalchemy 查询结果转dict 两行代码解决

1 篇文章 0 订阅
1 篇文章 0 订阅

我想要的效果是将多个结果放一个dict中返回给前端

data = {}

data['user'] =  session.query(User).all()
data['order'] = session.query(Order).all()
data['count'] = session.query(Count.user_id,func.sum(Count.money).label('money')).all()

return {'code':200,'data':data}

直接这样操作会报错
ValueError: [TypeError(‘cannot convert dictionary update sequence element #0 to a sequence’), TypeError(‘vars() argument must have dict attribute’)]

data = {}

user =  session.query(User).all()
#新增
data['user'] = [item.__dict__ for item in user]

order = session.query(Order).all()
#新增
data['order'] = [item.__dict__ for item in order]

count = session.query(Count.user_id,func.sum(Count.money).label('money')).all()
#新增
data['count'] = [item._asdict() for item in count]

return {'code':200,'data':data}

查询某表全部字段时
user = session.query(User).filter().all()
返回的是User这个对象列表
使用 item.dict

而查询某些字段或者多表连接时
count = session.query(Count.user_id,func.sum(Count.money.label(‘money’))).all()
其返回result对象的列表
使用 item._asdict()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值