需求一,将数据对象转为dict,但是不包括relation,

import BaseClass #所有模型的基础类

def getDictFromObj_nr(obj):
return_dict={}
if isinstance(obj,BaseClass):
for key in obj.__dict__ :
if key.startswith('_'):continue
return_dict[key]=getattr(obj,key)
return return_dict

需求二,将数据对象转为dict,但是包括relation,凡是定义了relation的,就会提出relation对应的对象,或者对象列表。

import BaseClass
import getDictFromObj_nr def getDictFromObj(self,obj):
'''
包括relation,对象转dict
:param obj:
:return:
'''
return_dict={}
if isinstance(obj,BaseClass):
for key in [x for x in dir(obj) if not x.startswith('_') and x not in ["get", "iteritems", "metadata", "next", "save", "update"]]:
value=getattr(obj,key)
if isinstance(value,list):
return_dict[key]=[]
for item in value:
if isinstance(item,BaseClass):
return_dict[key].append(getDictFromObj_nr(item))
else:
return_dict[key].append(item)
elif isinstance(value,BaseClass):
return_dict[key]=getDictFromObj_nr(value)
else:
return_dict[key]=getattr(obj,key)
return return_dict
else:
return obj

将SQLAlchemy对象转化为dict的更多相关文章

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

    编写Python脚本把sqlAlchemy对象转换成dict的教程 在用sqlAlchemy写web应用的时候,经常会用json进行通信,跟json最接近的对象就是dict,有时候操作dict也会比操 ...

  2. SQLAlchemy 对象缓存和刷新

    SQLAlchemy 对象缓存和刷新 SQLAlchemy 带有对象缓存机制,在重复查询相同的对象时,直接先查询本地的缓存,而不需要从数据库加载数据. 在每个 model 对象的内部,SQLAlche ...

  3. django的model对象转化成dict

    今天发现一个掉渣天的方法,Django的forms包里面有一个方法:model_to_dict(),它可以将一个model对象转化成dict. In [1]: from apps.dormitory. ...

  4. 如何将C#对象转化为JSON字符串

    System.Web.Extensions.dll中类JavaScriptSerializer可以帮助我们把C#对象转化为JSON字符串. 有一个Person类 public class Person ...

  5. 类对象序列化为json串,json串反序列化为类对象

    1.类对象序列化为json串: 方法一: class P(object): def __init__(self,name,age,sex): self.name=name self.age=age s ...

  6. JS对象序列化为JSON对象的方法

    var $ = $ || {}; /** * 将JS对象序列化为JSON字符串 * @param {Mixed} o The variable to decode * @return {String} ...

  7. json字符串转化为json对象and 对象转化为 json字符串

    第一种方法: var data =evel('('+jsonstr+')') 解析:  这种方法是常用的方法, 即动态执行 javascript代码 在堆中存放数据. 存在安全问题. 第二种方法:   ...

  8. 一般处理程序中 C#中对象转化为Json对象

    namespace: Newtonsoft.Json; context.Response.ContentType = "application/text"; 注:这里为什么不是 J ...

  9. 快速将对象转化为JSON格式

    1.导入阿里巴巴fastjson包. <!-- fastJson将对象转化为Json对象 --> <dependency> <groupId>com.alibaba ...

随机推荐

  1. Linux Bash脚本编程语言中的美学与哲学

    我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学. 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更 ...

  2. Python爬虫入门五之URLError异常处理

    大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...

  3. gitlab centos 安装配置运维笔记

    写在前面 如果你需要一个git服务器,为企业或自己的团队托管代码而又不希望将代码仓库存储到第三方.你可以在自己的服务器上搭建一个gitlab. 本文为我在最初安装配置gitlab服务器的时候留存的笔记 ...

  4. 浅谈css float

    相信许多许多Web前端的朋友一定被float这个属性给困扰过吧,有时候用它来布局很方便,能够实现元素快速的水平排列,但有时候它又像一个精灵,让人无法琢磨透它方位.在网上也看了一些关于float的帖子, ...

  5. web测试——完结感言

    1.在小组所有成员一人找出了博客园的2个小bug. 2.杨瑞丰与李建文完成了用户调研和定量评价. 3.张颖与汪鸿也完成了产品分析和与CSDN的横向比较. 4.胡俊辉一个人总结所有人的问题与结果,进行了 ...

  6. myeclipse如何将项目打包成war包

    打包步骤如下: 详细介绍请查看全文:https://cnblogs.com/qianzf/ 原文博客的链接地址:https://cnblogs.com/qzf/

  7. [GO]结构体指针变量初始化

    package main import "fmt" func main() { type student struct { id int name string sex byte ...

  8. Yii2在Form中处理短信验证码的Validator,耦合度最低的短信验证码验证方式

    短信验证码在目前大多数web应用中都会有,本文介绍一个基于Yii2 Validator方式的验证码验证方式. 在其他文章中看到的方式大多比较难做到一次封装,多次重用. 使用此方式的好处自然不用多说,V ...

  9. ubuntu eclipse 集成pyDev

    Eclipse help 选择安装新软件 添加一个pydev 名字随意.地址是 http://pydev.org/updates. 下面的列表会出现很多PyDev For Eclipse 选择版本最高 ...

  10. redis----内部数据结构学习

    整数集合 1.应用 用于有序.无重复的保存多个整数值 自动选择该用什么长度的整数类型保存数据