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