本文实例讲述了Python实现复杂对象转JSON的方法。分享给大家供大家参考,具体如下:
在Python对于简单的对象转json还是比较简单的,如下:
1
2
3
4
|
import json
d = { 'a' : 'aaa' , 'b' : [ 'b1' , 'b2' , 'b3' ], 'c' : 100 }
json_str = json.dumps(d)
print json_str
|
对于复杂对象,可以使用下面的方法来实现,比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import json
class Customer:
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 ):
return repr (( self .name, self .grade, self .age, self .address.home, self .address.office))
class Address:
def __init__( self , home, office):
self .home = home
self .office = office
def __repr__( self ):
return repr (( 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 = lambda o: o.__dict__, sort_keys = True , indent = 4 )
print json_str
|
结果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[
{
"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"
}
]
|
希望本文所述对大家Python程序设计有所帮助。