json(j**ascript object notation)是一種輕量級的資料交換格式,它基於ecmascript的乙個子集。 json採用完全獨立於語言的文字格式,這些特性使json成為理想的資料交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,在介面資料開發和傳輸中非常常用。
python3中我們利用內建模組json解碼和編碼json物件。json模組提供了四個功能:
dumps、dump、loads、load
dumps 把資料型別轉換成字串
dump 把資料型別轉換成字串並儲存在檔案中
loads 把字串轉換成資料型別
load 把檔案開啟從字串轉換成資料型別
我們利用 dumps 將python物件編碼為 json物件 ,當然 dumps 只完成了序列化為str,而 dump 必須傳檔案描述符,將序列化的str儲存到檔案中。
編碼字典
import json
odata =
jdata = json.dumps(odata)
print(jdata)
示例結果:
編碼列表
import json
ldata = [100, 'python2', ]
jdata = json.dumps(ldata)
print(jdata)
示例結果:
[100, "python3", ]
編碼字串
import json
sdata = 'python3'
jdata = json.dumps(sdata)
print(jdata)
示例結果:
"python3"
格式化輸出json
將下面的陣列,轉化為標準的json格式
import json
ldata = ['python3', 100, , true]
jdata = json.dumps(ldata, sort_keys=true, indent=4)
print(jdata)
示例結果:
["python3",
100,
, true
]引數解析:
sort_keys=true 那麼字典的輸出會以鍵的順序排序
indent=4表示縮排為4,如果 indent 是乙個非負整數或者字串,那麼 json 陣列元素和物件成員會被美化輸出為該值指定的縮排等級。
下面為python原www.cppcns.com始型別向json物件的轉化對照表:
python
json
dict
object
list, tuple
array
str, unicode
string
int, long, float
number
true
true
false
false
no程式設計客棧ne
null
我們利用 loads 用於解碼 json物件 。解碼結果即與之對應的 python物件 型別。當然 loads 只完成了反序列化, load 只接收檔案描述符,完成讀取檔案和反序列化。
比如我們用來解碼上個示例的資料
import json
jsondata = '''
[ "python3",
100,
, true
]'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
示例結果:
['python3', 100, , true]
可以看到我們成功對上個例子中的json物件進行了解碼,並且最終的解碼結果為python列表物件型別,符合python物件json物件對照表的結果。
python3 json模組使用與字元編碼問題
序列化 將物件的狀態資訊轉換為可以儲存或可以通過網路傳輸的過程,傳輸的格式可以是json,xml。反序列化 就是從儲存區域 json,xml 讀取反序列化物件的狀態,重新建立該物件 python3 中可以使用 json 模組來對 json 資料進行編譯碼,它包含了兩個函式 在json的編譯碼過程中,...
Python3 JSON 資料解析
python3 中可以使用 json 模組來對 json 資料進行編譯碼,它包含了兩個函式 json.dumps 對資料進行編碼。json.loads 對資料進行解碼。import json python 字典型別轉換為 json 物件 data json str json.dumps data p...
Python3 JSON 資料解析及案例
python3 中可以使用 json 模組來對 json 資料進行編譯碼,它包含了兩個函式 json.dumps 對資料進行編碼。json.loads 對資料進行解碼。python 編碼為 json 型別轉換對應表 json 解碼為 python 型別轉換對應表 json.dumps 與 json....