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的Django框架使用的一些实用建议
Apr 03 Python
Django自定义用户认证示例详解
Mar 14 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
使用python绘制二维图形示例
Nov 22 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
pycharm 快速解决python代码冲突的问题
Jan 15 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
自己前几天写的无限分类类
2007/02/14 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
nodejs读取并去重excel文件
2018/04/22 NodeJs
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
python写的ARP攻击代码实例
2014/06/04 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python pymsql模块的使用
2020/09/07 Python
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
社区党员先进事迹
2014/01/22 职场文书
大学活动总结范文
2014/04/29 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
硕士论文致谢范文
2015/05/14 职场文书
党小组意见范文
2015/06/08 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
golang import自定义包方式
2021/04/29 Golang
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
使用Python解决图表与画布的间距问题
2022/04/11 Python
Nginx配置使用详解
2022/07/07 Servers
Python中的socket网络模块介绍
2022/07/23 Python