python实现class对象转换成json/字典的方法

作者:Ruthless 时间:2021-11-16 00:46:34 

本文实例讲述了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,class,json,字典
0
投稿

猜你喜欢

  • Python采集C站高校信息实战示例

    2023-11-16 12:01:56
  • MYSQL初学者命令行使用指南

    2024-01-15 08:46:33
  • ASP Crazy 模版操作类(最简单的模板类、仅提供交流)

    2011-03-17 11:06:00
  • Python反射用法实例简析

    2021-10-15 20:28:34
  • MySQL中批量删除指定前缀表的sql语句

    2024-01-17 07:37:07
  • 解决Tkinter中button按钮未按却主动执行command函数的问题

    2023-05-04 18:38:08
  • delete from online where datediff

    2009-06-07 18:46:00
  • vue2 router 动态传参,多个参数的实例

    2024-05-11 09:13:17
  • pandas 实现某一列分组,其他列合并成list

    2022-06-12 13:49:21
  • 使用Python编写一个模仿CPU工作的程序

    2021-04-28 05:28:25
  • Python使用matplotlib绘图无法显示中文问题的解决方法

    2023-07-30 22:16:30
  • Python代码调试的几种方法总结

    2022-06-14 18:21:27
  • 全面了解python中的类,对象,方法,属性

    2021-10-07 10:54:50
  • 详解ASP.NET Core中间件Middleware

    2024-05-09 09:05:15
  • MySQL SQL 语法参考

    2024-01-17 15:50:05
  • Python简单基础小程序的实例代码

    2021-03-29 21:17:59
  • flask中过滤器的使用详解

    2023-03-01 16:00:55
  • ORM框架之Dapper简介和性能测试

    2024-05-03 15:30:44
  • Python+DeOldify实现老照片上色功能

    2021-07-13 00:04:46
  • pygame游戏之旅 载入小车图片、更新窗口

    2022-08-06 18:12:39
  • asp之家 网络编程 m.aspxhome.com