1. 程式人生 > >Python中json格式資料的編碼和解碼

Python中json格式資料的編碼和解碼

python從2.6版本開始內建了json資料格式的處理方法。

1、json格式資料編碼
在python中,json資料格式編碼使用json.dumps方法。

#!/usr/bin/env python  
#coding=utf8  
import json  
users = [{'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18}]  
#元組物件也可以  
#users = ({'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18})  
#輸出[{"age": 22, "name": "tom"}, {"age": 18, "name": "anny"}]  
print json.dumps(users) 

其中users可以是元組物件,也可以是列表物件。物件內的元素可以是數字、字串、元組、列表、None、布林值。

#!/usr/bin/env python  
#coding=utf8  
import json  
random = (5, [1, 2], "tom\" is good", (1, 2), 1.5, True, None)  
#輸出[5, [1, 2], "tom\" is good", [1, 2], 1.5, true, null]  
print json.dumps(random) 

2、json格式資料解碼
在python中json格式資料解碼使用json.loads方法,把上面的例子搬來用:

#!/usr/bin/env python  
#coding=utf8  
import json  
random = (5, [1, 2], "tom\" is good", (1, 2), 1.5, True, None)  
jsonObj = json.dumps(random)  
#輸出[5, [1, 2], u'tom" is good', [1, 2], 1.5, True, None]  
print json.loads(jsonObj) 

這裡就是先對一個數據json編碼,然後再將編碼後的資料解碼。
照理說,解碼後的資料應當和原先的資料一樣,但是我們發現這裡元組物件都被替換成列表物件了。
這邊就涉及到python和json互相轉換的資料格式定義了。看下面兩個圖:

python轉成json資料格式定義

python轉成json資料格式定義

json轉成python資料格式定義

json轉成python資料格式定義



從上面兩個圖可以看出python轉換成json的時候,list、tuple都會轉成array,而json轉成python的時候,array就只轉成list了。

備註:上面兩張圖的內容均來源於python官方站點。

json的dumps方法和loads方法也還有其他的引數可以使用,

如果需要更深入的使用,可以參考官方手冊:http://docs.python.org/2/library/json.html?highlight=json#json