首页 > 解决方案 > Python嵌套Obj到JSON

问题描述

如何从嵌套的 python 对象中获取 JSON

类 simplobj:

 def _init_(self,fname,lname,depart):
       self.fname=fname
       self.lname=lname
       self.depart = depart

类jsonobj:

  array = [] 
  def _init_(self,time,listOfSimpleObj):
       self.time = time
       self.array = listofSimpleObj 

主类:

  listOfSimpleObj =[]
  sobj = simplobj("fname1","lname1","depart1")
  listOfSimpleObj.append(sobj)
  outputjsonobj = jsonobj(time,listOfSimpleObj)
  output = json.dumps(outputjsonobj._dict_)



output: { "time" : "time", "array":  [ 
{ "fname": "fname1", "lname": "lname1", "depart": "depart1"},
{ "fname": "fname2", "lname": "lname2", "depart": "depart2"},
{ "fname": "fname3", "lname": "lname3", "depart": "depart3"}  ] }

标签: pythonjson

解决方案


你可以创建一个json.JSONEncoder来指定你的类应该如何序列化:

class MyEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, simplobj) or isinstance(obj, jsonobj):
            return obj.__dict__
        return json.JSONEncoder.default(self, obj)

...

output = json.dumps(outputjsonobj, cls=MyEncoder)

推荐阅读