python实现class对象转换成json/字典的方法


Posted in Python onMarch 11, 2016

本文实例讲述了python实现class对象转换成json字典的方法。分享给大家供大家参考,具体如下:

# -*- encoding: UTF-8 -*-
class Student:
  name = ''
  age = 0
  def __init__(self, name, age):
    self.name = name
    self.age = age
def convert_to_dict(obj):
  '''把Object对象转换成Dict对象'''
  dict = {}
  dict.update(obj.__dict__)
  return dict
def convert_to_dicts(objs):
  '''把对象列表转换为字典列表'''
  obj_arr = []
  for o in objs:
    #把Object对象转换成Dict对象
    dict = {}
    dict.update(o.__dict__)
    obj_arr.append(dict)
  return obj_arr
def class_to_dict(obj):
  '''把对象(支持单个对象、list、set)转换成字典'''
  is_list = obj.__class__ == [].__class__
  is_set = obj.__class__ == set().__class__
  if is_list or is_set:
    obj_arr = []
    for o in obj:
      #把Object对象转换成Dict对象
      dict = {}
      dict.update(o.__dict__)
      obj_arr.append(dict)
    return obj_arr
  else:
    dict = {}
    dict.update(obj.__dict__)
    return dict
stu = Student('zhangsan', 20)
print '-----------'
print convert_to_dict(stu)
print '-----------'
print convert_to_dicts([stu, stu])
print '-----------'
print class_to_dict(stu)
print '-----------'
print class_to_dict([stu, stu])
stua = Student('zhangsan', 20)
stub = Student('lisi', 10)
stu_set = set()
stu_set.add(stua)
stu_set.add(stub)
print class_to_dict(stu_set)

运行结果如下:

-----------
{'age': 20, 'name': 'zhangsan'}
-----------
[{'age': 20, 'name': 'zhangsan'}, {'age': 20, 'name': 'zhangsan'}]
-----------
{'age': 20, 'name': 'zhangsan'}
-----------
[{'age': 20, 'name': 'zhangsan'}, {'age': 20, 'name': 'zhangsan'}]
[{'age': 10, 'name': 'lisi'}, {'age': 20, 'name': 'zhangsan'}]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
详解Python中的条件判断语句
May 14 Python
Python中max函数用法实例分析
Jul 17 Python
Python实现针对含中文字符串的截取功能示例
Sep 22 Python
python 删除非空文件夹的实例
Apr 26 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
python解析命令行参数的三种方法详解
Nov 29 Python
TensorFLow 变量命名空间实例
Feb 11 Python
pycharm 对代码做静态检查操作
Jun 09 Python
python线性插值解析
Jul 05 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 #Python
深入学习python的yield和generator
Mar 10 #Python
Python中random模块生成随机数详解
Mar 10 #Python
python生成器表达式和列表解析
Mar 10 #Python
python迭代器与生成器详解
Mar 10 #Python
Python装饰器基础详解
Mar 09 #Python
Python求算数平方根和约数的方法汇总
Mar 09 #Python
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
canvas时钟效果
2017/02/16 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python中的with...as用法介绍
2015/05/28 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
详解Python核心对象类型字符串
2018/02/11 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
python中get和post有什么区别
2020/06/19 Python
python识别验证码的思路及解决方案
2020/09/13 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
解决方案设计综合面试题
2015/08/31 面试题
应届生妇产科护士求职信
2013/10/27 职场文书
经销商年会策划方案
2014/05/29 职场文书
装修活动策划方案
2014/08/27 职场文书
师德标兵事迹材料
2014/12/19 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript