• 技术文章 >后端开发 >Python教程

    js中sqlalchemy的实例详解

    零下一度零下一度2017-07-20 20:17:35原创968
    sqlalchemy的返回类型有大都有两种,一种是Model对象,一种是Query集合(只查询部分字段)。

    针对这两种返回结果,都是来自同一中类型 sqlalchemy.orm.query.Query

    所以针对Query做相应处理,让他返回一个dict

    class AlchemyJsonEncoder(json.JSONEncoder):
        def default(self, obj):
            # 判断是否是Query
            if isinstance(obj, Query):
                # 定义一个字典数组
                fields = []
                # 定义一个字典对象
                record = {}
                # 检索结果集的行记录
                for rec in obj.all():
                    # 检索记录中的成员
                    for field in [x for x in dir(rec) if
                                  # 过滤属性
                                  not x.startswith('_')
                                  # 过滤掉方法属性
                                  and hasattr(rec.__getattribute__(x), '__call__') == False
                                  # 过滤掉不需要的属性
                                  and x != 'metadata']:
                        data = rec.__getattribute__(field)
                        try:
                            record[field] = data
                        except TypeError:
                            record[field] = None
                    fields.append(record)
                # 返回字典数组
                return fields
            # 其他类型的数据按照默认的方式序列化成JSON
            return json.JSONEncoder.default(self, obj)

      

    这样在每次序列化的时候就可以简单的使用

    json.dumps(result1, cls=AlchemyJsonEncoder)

    来实现对结果集的json序列化了。

    以上就是js中sqlalchemy的实例详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Python标准库之sched模块介绍 下一篇:Python用Pillow(PIL)进行图像操作实例
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 深入了解Python装饰器函数• Python图像处理之PIL库• python数据可视化之饼状图的绘制• 实例讲解Python批量修改文件名• Python实例详解pdfplumber读取PDF写入Excel
    1/1

    PHP中文网