文档章节

SQLAlchemy Model Object to json 对象转 JSON

曹梦龙
 曹梦龙
发布于 2016/07/21 18:41
字数 240
阅读 752
收藏 1

将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

 

© 著作权归作者所有

共有 人打赏支持
曹梦龙
粉丝 14
博文 27
码字总数 12015
作品 0
扬州
高级程序员
私信 提问
转-SQLAlchemy and You

written on Tuesday, July 19, 2011 from:http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/ Without doubt are most new Python web programmers these days chosing the Django frame......

玉龙
2011/07/26
0
0
sqlalchemy和flask-sqlalchemy查询结果转json

Flask-RESTful 有一个专门做这个的东西,叫 marshalwith, 具体介绍在这里:http://flask-restful.readthedocs.org/en/latest/fields.html 我一般都是用它来格式化返回值 marshal_with 实际做...

stys35
02/23
0
0
flask-sqlalchemy 查询结果转成json

把查询到的对象格式化成json格式返给前端使用是项目中最常见的一种方法,但是用sqlalchemy查询出来的对象转成json格式稍微有些麻烦,我得做法是这样的 # 用户表class User(db.Model): 在mod...

nanlong
2013/06/03
0
1
SQLAlchemy 0.9.0 发布,数据持久层框架

SQLAlchemy 0.9.0 发布,此版本主要更新内容如下: 支持本地 Python 3, 完善了即刻加载系统,包括添加了一个更有表现力的 API 能处理更多复杂的连接 支持 Postgresql JSON 类型,SQL 表达式 ...

oschina
2014/01/01
1K
3
序列化 SqlAlchemy 的结果为 json 字符串

在设计 RESTful 的网站时,我们总是希望 ORM 框架返回的结果是可以直接给 View 层使用的 JSON 字符串。但是 Sqlalchemy 的返回结果直接使用 会报 TypeError 的错误。 解决方案 其实就像遇到 ...

NineRec
2015/04/02
0
2

没有更多内容

加载失败,请刷新页面

加载更多

分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
2
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
1
0
cocoapods 用法

cocoapods install pod install 更新本地已经install的仓库 更新所有的仓库 pod update --verbose --no-repo-update 更新制定的仓库 pod update ** --verbose --no-repo-update...

HOrange
今天
3
0
linux下socket编程实现一个服务器连接多个客户端

使用socekt通信一般步骤 1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。 2)客户端:socker()建立套接字,连接(connect)服务器,连接上后...

shzwork
昨天
3
0
android自定义viewgroup画背景

设计部要求背景实现一个背景边框带圆弧的效果: 所以想着用自定义控件画一个背景。 为了方便,继承的是LinearLayout,在onMeasure中先获取控件宽高: @Overrideprotected void onMeasure(in...

醉雨
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部