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 相关文章推荐
在Django的视图中使用数据库查询的方法
Jul 16 Python
Python的string模块中的Template类字符串模板用法
Jun 27 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
python正则表达式之对号入座篇
Jul 24 Python
Python设计模式之原型模式实例详解
Jan 18 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python文件读写代码实例
Oct 21 Python
Pytorch之parameters的使用
Dec 31 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
python删除指定列或多列单个或多个内容实例
Jun 28 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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
综合图片计数器
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
python里将list中元素依次向前移动一位
2014/09/12 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
python实现类之间的方法互相调用
2018/04/29 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
python 函数中的参数类型
2020/02/11 Python
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
经销商会议欢迎词
2014/01/11 职场文书
安全生产活动月方案
2014/03/09 职场文书
创先争优标语
2014/06/27 职场文书
《山中访友》教学反思
2016/02/24 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js