编写Python脚本把sqlAlchemy对象转换成dict的教程
作者:wangdai 时间:2023-02-22 07:26:47
在用sqlAlchemy写web应用的时候,经常会用json进行通信,跟json最接近的对象就是dict,有时候操作dict也会比操作ORM对象更为方便,毕竟不用管数据库session的状态了。
假设数据库里有一张post表,其中一种方法就是
p = session.query(Post).first()
p.__dict__
但由于p是sqlAlchemy的对象,所以p.__dict__中会有一些其他的属性比如_sa_instance这种我们不需要关注的
那么我们可以给model的基类加一个方法,假设models.py中原来是这样
Base = sqlalchemy.ext.declarative.declarative_base()
class Post(Base):
__tablename__ = 'post'
id = Column(Integer, primary_key=True)
title = Column(String)
那么我们可以加一个to_dict()方法到Base类中
def to_dict(self):
return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
Base.to_dict = to_dict
这样就可以
p = session.query(Post).first()
p.to_dict()
当然,如果model没有和table绑定的话model里是没有__table__的信息的,可能也会出问题,不过我目前觉得这样最方便了
标签:Python,sqlAlchemy
0
投稿
猜你喜欢
Python生成随机数的方法详解(最全)
2023-05-04 12:36:08
在import scipy.misc 后找不到 imsave的解决方案
2023-08-09 05:21:45
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2023-11-19 02:10:43
一文带你搞懂PHP单例模式
2023-05-25 02:23:05
SQL Server日志文件总结及日志满的处理
2009-03-25 16:17:00
框架和框架之间的关系
2008-01-17 18:54:00
wiondws XP下安装MySQL图文教程
2007-06-15 09:29:00
python3 写一个WAV音频文件播放器的代码
2023-04-09 05:06:36
比较文档位置
2008-04-03 13:24:00
python 使用cycle构造无限循环迭代器
2022-08-19 13:09:10
ASP中的全角和半角之间的转化
2008-06-06 13:34:00
Python学习小技巧总结
2021-09-21 09:28:49
django redis的使用方法详解
2023-08-03 10:54:30
Python 私有属性和私有方法应用场景分析
2023-12-06 05:36:42
laravel入门知识点整理
2023-05-31 13:42:33
CSS Type set: 在线字体调整工具
2008-03-02 15:36:00
解决python3运行selenium下HTMLTestRunner报错的问题
2022-04-14 16:44:19
python使用re模块爬取豆瓣Top250电影
2023-10-11 17:28:38
Python竟然能剪辑视频
2021-09-03 08:12:54
Python高光谱遥感影像处理问题详细分析讲解
2023-10-04 04:03:37