Python实现复杂对象转JSON的方法示例
本文实例讲述了Python实现复杂对象转JSON的方法。分享给大家供大家参考,具体如下:
在Python对于简单的对象转json还是比较简单的,如下:
importjson d={'a':'aaa','b':['b1','b2','b3'],'c':100} json_str=json.dumps(d) printjson_str
对于复杂对象,可以使用下面的方法来实现,比如:
importjson classCustomer: def__init__(self,name,grade,age,home,office): self.name=name self.grade=grade self.age=age self.address=Address(home,office) def__repr__(self): returnrepr((self.name,self.grade,self.age,self.address.home,self.address.office)) classAddress: def__init__(self,home,office): self.home=home self.office=office def__repr__(self): returnrepr((self.name,self.grade,self.age)) customers=[ Customer('john','A',15,'111','aaa'), Customer('jane','B',12,'222','bbb'), Customer('dave','B',10,'333','ccc'), ] json_str=json.dumps(customers,default=lambdao:o.__dict__,sort_keys=True,indent=4) printjson_str
结果如下
[ { "address":{ "home":"111", "office":"aaa" }, "age":15, "grade":"A", "name":"john" }, { "address":{ "home":"222", "office":"bbb" }, "age":12, "grade":"B", "name":"jane" }, { "address":{ "home":"333", "office":"ccc" }, "age":10, "grade":"B", "name":"dave" } ]
PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/