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中函数的多种格式和使用实例及小技巧
Apr 13 Python
彻底搞懂Python字符编码
Jan 23 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
【python】matplotlib动态显示详解
Apr 11 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python实现画循环圆
Nov 23 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue中的inject学习教程
2019/04/24 Javascript
javascript实现日历效果
2019/06/17 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python用GET方法上传文件
2015/03/10 Python
python3个性签名设计实现代码
2018/06/19 Python
Python实战购物车项目的实现参考
2019/02/20 Python
python文件写入write()的操作
2019/05/14 Python
python实现宿舍管理系统
2019/11/22 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
线程同步的方法
2016/11/23 面试题
马云的职业生涯规划之路
2014/01/01 职场文书
运动会广播稿200米
2014/01/27 职场文书
会走路的树教学反思
2014/02/20 职场文书
网站出售协议书范文
2014/10/10 职场文书
财务会计岗位职责
2015/02/03 职场文书
团员个人年度总结
2015/02/26 职场文书
新人入职感言
2015/07/31 职场文书
中秋节随笔
2015/08/15 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python