本文摘自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的实例详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
json.loads是干嘛的?简单阐述json.loads Python的用法
Python数据采集--beautifulsoup的使用
Python装什么软件
深入了解Python中的协程函数
Python字典中如何一键多值的写入?
总结Python编码需要注意的地方
Python是面向对象吗
Python中的sort的方法使用详解
Python数据分析用什么数据库
Python可以做界面吗
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » js中sqlalchemy的实例详解