近期,将以前写的代码修改了一次,由于以前是用SQL语句查询数据,改为model操作后,发现查询出的结果不是字典格式,故查找了许久的资料,终于找到了解决办法.....
def model_to_dict(result):
from collections import Iterable
# 转换完成后,删除 '_sa_instance_state' 特殊属性
try:
if isinstance(result, Iterable):
tmp = [dict(zip(res.__dict__.keys(), res.__dict__.values())) for res in result]
for t in tmp:
t.pop('_sa_instance_state')
else:
tmp = dict(zip(result.__dict__.keys(), result.__dict__.values()))
tmp.pop('_sa_instance_state')
return tmp
except BaseException as e:
print(e.args)
raise TypeError('Type error of parameter')
由于查询出的数据自带 "_sa_instance_state"属性,故多了一步删除操作;
以上信息,希望能给大家带来一点点帮助,感谢。
参考链接:https://segmentfault.com/a/1190000002768198