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中条件选择和循环语句使用方法介绍
Mar 13 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
Python编写Windows Service服务程序
Jan 04 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
python使用Geany编辑器配置方法
Feb 21 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
ThinkPHP模型详解
2015/07/27 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
浅谈js闭包理解
2019/03/28 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
Python httplib模块使用实例
2015/04/11 Python
python 输出所有大小写字母的方法
2019/01/02 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
模具设计与制造专业推荐信
2014/02/16 职场文书
广告创意求职信
2014/03/17 职场文书
和睦家庭事迹
2014/05/14 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
团日活动总结报告
2014/06/25 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
Go语言怎么使用变长参数函数
2022/07/15 Golang