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使用urllib2获取网络资源实例讲解
Dec 02 Python
python中迭代器(iterator)用法实例分析
Apr 29 Python
Python连接DB2数据库
Aug 27 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
Numpy之文件存取的示例代码
Aug 03 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
python下载库的步骤方法
Oct 12 Python
浅谈Python type的使用
Nov 19 Python
Tensorflow分批量读取数据教程
Feb 07 Python
Python实现SMTP邮件发送
Jun 16 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
php删除数组元素示例分享
2014/02/17 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
JS 继承实例分析
2008/11/04 Javascript
Javascript的闭包
2009/12/31 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
js获取页面description的方法
2015/05/21 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python Queue模块详细介绍及实例
2016/12/27 Python
Anaconda入门使用总结
2018/04/05 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
DNA测试:Orig3n
2019/03/01 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
国际会计专业求职信
2014/08/04 职场文书
党员个人总结自评
2015/02/14 职场文书
500字小学生检讨书
2015/02/19 职场文书
党支部工作总结2015
2015/04/01 职场文书
2016党校学习心得体会
2016/01/07 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js