本文摘自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):
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
return json.JSONEncoder.default( self , obj)
|
这样在每次序列化的时候就可以简单的使用
1 | json.dumps(result1, cls = AlchemyJsonEncoder)
|
来实现对结果集的json序列化了。
以上就是js中sqlalchemy的实例详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
了解 flask 项目结构
djiango目录文件
Python实现给照片换底色(附代码)
基于Python的多进程共享变量正确打开方式
三篇文章帮你搞定怎样进行mysql数据库学习之安装sql数据库
Python中关于数字的详解
win10自带Python吗
Python怎么读excel
Python3之简单工厂模式的介绍
tkinter是Python自带的吗
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » js中sqlalchemy的实例详解