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使用递归解决全排列数字示例
Feb 11 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Django基础知识与基本应用入门教程
Jul 20 Python
python K近邻算法的kd树实现
Sep 06 Python
python之消除前缀重命名的方法
Oct 21 Python
Python学习笔记之For循环用法详解
Aug 14 Python
python 并发下载器实现方法示例
Nov 22 Python
python求绝对值的三种方法小结
Dec 04 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python删除服务器文件代码示例
2018/02/09 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
服装厂厂长岗位职责
2013/12/27 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
大学生求职信怎么写
2015/03/19 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python