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利用elaphe制作二维条形码实现代码
May 25 Python
python实现调用其他python脚本的方法
Oct 05 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
python连接mongodb密码认证实例
Oct 16 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
Python脚本导出为exe程序的方法
Mar 25 Python
Django自定义YamlField实现过程解析
Nov 11 Python
一个入门级python爬虫教程详解
Jan 27 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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实现微信发红包
2015/12/05 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
JS实现选项卡效果的代码实例
2019/05/20 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Python秒算24点实现及原理详解
2019/07/29 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
人事行政主管岗位职责
2013/12/22 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
报效祖国演讲稿
2014/09/15 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
感恩教师节主题班会
2015/08/12 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS