专栏首页地方网络工作室的专栏Python3 初学实践案例(10)对象转字典 object to dict

Python3 初学实践案例(10)对象转字典 object to dict

版权声明:本文为 FengCms FungLeo 原创文章,允许转载,但转载必须注明出处并附带首发链接 https://blog.csdn.net/FungLeo/article/details/78873361

Python3 初学实践案例(10)对象转字典 object to dict

我在写代码的时候遇到一个问题,就是 sqlalchemy 从数据库中查的的结果是一个对象,我虽然可以直接把这个对象用 x.id 的方式取出来内容,但是总是感觉不爽,我希望可以更好的处理这个对象。但是打印出来的结果一直是 <__main__.Passwd object at 0x10ea50cc0> 这样的东西。

通过查看文档,我找到了一个函数 vars(obj) 。这个函数可以把对象转换成字典。文档地址:https://docs.python.org/3/library/functions.html?highlight=vars#vars

但是输出的结果是这样的:

{'_sa_instance_state': <sqlalchemy.orm.state.InstanceState object at 0x10e773cf8>, 'name': 'sunmingyuan', 'id': 2, 'password': '/t22664Q44', 'time': datetime.datetime(2017, 12, 20, 5, 11, 22)}

虽然这个结果已经可以让我使用了,但是感觉还是怪怪的对么。所以,我接着搜索,终于找到了一个手写的函数,可以很好的处理这个问题:

def row2dict(row):
    d = {}
    for column in row.__table__.columns:
        d[column.name] = str(getattr(row, column.name))

    return d

用这个函数处理的结果就非常优雅了。

{'id': '17', 'name': 'love', 'password': 'xxxxx', 'time': '2017-12-22 05:08:27'}

参考地址:https://stackoverflow.com/questions/1958219/convert-sqlalchemy-row-object-to-python-dict

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来

    Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来 前情回顾 在上一篇博文《Vue2+VueRou...

    FungLeo
  • React + webpack 开发单页面应用简明中文文档教程(六)渲染一个列表,初识 jsx 文件

    版权声明:本文为 FengCms FungLeo 原创文章,允许转载,但转载必须注明出处并附带首发链接 ...

    FungLeo
  • React + webpack 开发单页面应用简明中文文档教程(十一)将项目打包到子目录运行

    版权声明:本文为 FengCms FungLeo 原创文章,允许转载,但转载必须注明出处并附带首发链接 ...

    FungLeo
  • Vue简易图书管理完整代码

    用户3461357
  • 记录容易忘记的方法

    提取每个分类前n条记录 SELECT ID, Name, CategoryID FROM TableName AS a WHERE (ID IN ...

    用户1174620
  • laravel-admin form表单中,同时验证两个或多个唯一值

    最近在使用laravel-admin,记录一下用laravel-admin时遇到的问题

    用户4973967
  • 猿蜕变9——一文搞定SpringMVC的RESTFul套路

    看过之前的蜕变系列文章,相信你对springMVC有了一定的认识。对springMVC的Interceptor拦截器,也有了一定的认识。今天我们来开启新讨论,讲...

    山旮旯的胖子
  • Spring(5)——Spring 和数据库编程

    传统 JDBC 回顾 JDBC 我们一定不陌生,刚开始学习的时候,我们写过很多很多重复的模板代码: public Student getOne(int id) ...

    我没有三颗心脏
  • 资源 | OpenHINE:异质信息网络嵌入开源工具包

    为了方便大家对异质信息网络表示学习(HINE)开展相关的实验或研究,北京邮电大学 DMGroup 的研究人员在 GitHub 上发布了 HINE 训练和测试框架...

    Houye
  • NLP简报(Issue#4)

    图灵自然语言生成(T-NLG)[1]是由 Microsoft AI 研究人员提出的 170 亿参数语言模型。除了是迄今为止最大的已知语言模型(如下图所示)之外,...

    NewBeeNLP

扫码关注云+社区

领取腾讯云代金券