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实现dict版图遍历示例
Feb 19 Python
使用Python的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
Python进程间通信之共享内存详解
Oct 30 Python
python针对excel的操作技巧
Mar 13 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
python中退出多层循环的方法
Nov 27 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
创建Django项目图文实例详解
Jun 06 Python
Python list运算操作代码实例解析
Jan 20 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 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 XML数据解析代码
2010/05/26 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
简单实现python收发邮件功能
2018/01/05 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
浅析使用Python搭建http服务器
2019/10/27 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
win10安装python3.6的常见问题
2020/07/01 Python
利用python进行文件操作
2020/12/04 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
科室工作的个人自我评价
2013/10/30 职场文书
企业门卫岗位职责
2013/12/12 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
总会计师岗位职责
2014/02/19 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
小英雄雨来观后感
2015/06/09 职场文书
教学副校长工作总结
2015/08/13 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
PHP RabbitMQ消息列队
2022/05/11 PHP