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 socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
想学python 这5本书籍你必看!
Dec 11 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
Oct 12 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python中如何打包用户自定义模块
Sep 23 Python
如何利用python读取micaps文件详解
Oct 18 Python
Django自定义YamlField实现过程解析
Nov 11 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
python实现监听键盘
Apr 26 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
基于php无限分类的深入理解
2013/06/02 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
python动态加载变量示例分享
2014/02/17 Python
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
numpy排序与集合运算用法示例
2017/12/15 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python中线程和进程有何区别
2020/06/17 Python
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
工商技校毕业生自荐信
2013/11/15 职场文书
校园报刊亭创业计划书
2014/01/02 职场文书
装修致歉信
2014/01/15 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
颁奖晚会主持词
2014/03/25 职场文书
产假请假条
2014/04/10 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
护校行动方案
2014/05/31 职场文书
企业介绍信范文
2015/01/30 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书