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程序设计有所帮助。

Posted in 未分类

发表评论