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/