首页 > 编程 > Python > 正文

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

2020-01-04 17:38:39
字体:
来源:转载
供稿:网友
这篇文章主要介绍了python实现class对象转换成json/字典的方法,结合实例形式分析了Python类型转换的相关技巧,需要的朋友可以参考下
 

本文实例讲述了python实现class对象转换成json字典的方法。分享给大家供大家参考,具体如下:

# -*- encoding: UTF-8 -*-class Student:  name = ''  age = 0  def __init__(self, name, age):    self.name = name    self.age = agedef convert_to_dict(obj):  '''把Object对象转换成Dict对象'''  dict = {}  dict.update(obj.__dict__)  return dictdef convert_to_dicts(objs):  '''把对象列表转换为字典列表'''  obj_arr = []  for o in objs:    #把Object对象转换成Dict对象    dict = {}    dict.update(o.__dict__)    obj_arr.append(dict)  return obj_arrdef 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 dictstu = 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程序设计有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表