js中sqlalchemy的实例详解


本文摘自php中文网,作者零下一度,侵删。

sqlalchemy的返回类型有大都有两种,一种是Model对象,一种是Query集合(只查询部分字段)。

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

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)

  

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

1

json.dumps(result1, cls=AlchemyJsonEncoder)

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

以上就是js中sqlalchemy的实例详解的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

json.loads是干嘛的?简单阐述json.loads Python的用法

Python数据采集--beautifulsoup的使用

Python装什么软件

深入了解Python中的协程函数

Python字典中如何一键多值的写入?

总结Python编码需要注意的地方

Python是面向对象吗

Python中的sort的方法使用详解

Python数据分析用什么数据库

Python可以做界面吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...