编写Python脚本把sqlAlchemy对象转换成dict的教程

 更新时间:2015年05月29日 12:36:26   作者:wangdai  
这篇文章主要介绍了编写Python脚本把sqlAlchemy对象转换成dict的教程,主要是基于Python的model类构建一个转换的方法,需要的朋友可以参考下

在用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模拟自动存取款机的查询、存取款、修改密码等操作

    Python模拟自动存取款机的查询、存取款、修改密码等操作

    这篇文章主要介绍了Python模拟自动存取款机的查询、存取款、修改密码等操作,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • 基于django 的orm中非主键自增的实现方式

    基于django 的orm中非主键自增的实现方式

    这篇文章主要介绍了基于django 的orm中非主键自增的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • pytorch固定BN层参数的操作

    pytorch固定BN层参数的操作

    这篇文章主要介绍了pytorch固定BN层参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python如何读取.mtx文件

    python如何读取.mtx文件

    这篇文章主要介绍了python读取.mtx文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)

    不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)

    这篇文章主要介绍了Python入门一定要注意缩进,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 用python写爬虫简单吗

    用python写爬虫简单吗

    在本篇内容里小编给大家整理的是关于用python写爬虫是否简单的相关内容文章,需要的朋友们可以学习下。
    2020-07-07
  • 使用Selenium破解新浪微博的四宫格验证码

    使用Selenium破解新浪微博的四宫格验证码

    今天小编就为大家分享一篇关于使用Selenium破解新浪微博的四宫格验证码的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • python 调试冷知识(小结)

    python 调试冷知识(小结)

    这篇文章主要介绍了python 调试冷知识(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Python中list初始化方法示例

    Python中list初始化方法示例

    这篇文章主要介绍了Python中list初始化方法,分析了list初始化常用的方法与相关使用注意事项,需要的朋友可以参考下
    2016-09-09
  • Python爬虫Scrapy框架CrawlSpider原理及使用案例

    Python爬虫Scrapy框架CrawlSpider原理及使用案例

    这篇文章主要介绍了Python爬虫Scrapy框架(CrawlSpider),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11

最新评论