Python中json格式資料的編碼和解碼
阿新 • • 發佈:2019-02-11
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的時候,list、tuple都會轉成array,而json轉成python的時候,array就只轉成list了。
備註:上面兩張圖的內容均來源於python官方站點。
json的dumps方法和loads方法也還有其他的引數可以使用,
如果需要更深入的使用,可以參考官方手冊:http://docs.python.org/2/library/json.html?highlight=json#json