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序列之list和tuple常用方法以及注意事项
Jan 09 Python
Python守护进程(daemon)代码实例
Mar 06 Python
Python输出9*9乘法表的方法
May 25 Python
python实现获取Ip归属地等信息
Aug 27 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
Python3爬虫全国地址信息
Jan 05 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python range实例用法分享
Feb 06 Python
Python插件机制实现详解
May 04 Python
python 实现分组求和与分组累加求和代码
May 18 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
财务工作疏忽检讨书
2014/09/11 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
办公室卫生管理制度
2015/08/04 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL