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中多线程thread与threading的实现方法
Aug 18 Python
Python中if __name__ == "__main__"详细解释
Oct 21 Python
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
如何利用python读取micaps文件详解
Oct 18 Python
python Pexpect模块的使用
Dec 25 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
python中time.ctime()实例用法
Feb 03 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压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
PHP中的事务使用实例
2015/05/26 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
javascript数组详解
2014/10/22 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
MVVM 双向绑定的实现代码
2018/06/21 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Flask之请求钩子的实现
2018/12/23 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
仓库文员岗位职责
2014/04/06 职场文书
天气温馨提示语
2015/07/14 职场文书
初中信息技术教学反思
2016/02/16 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电