网络编程
位置:首页>> 网络编程>> Python编程>> python实现class对象转换成json/字典的方法

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

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

标签:python,class,json,字典

本文实例讲述了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程序设计有所帮助。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com