python实现class对象转换成json/字典的方法
admin
2023-07-31 02:36:28
0

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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...