json(j**ascript object notation)是一種輕量級的資料交換格式,它基於ecmascript的乙個子集。 json採用完全獨立於語言的文字格式,這些特性使json成為理想的資料交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,在介面資料開發和傳輸中非常常用。
python3中我們利用內建模組json解碼和編碼json物件。json模組提供了四個功能:dumps、dump、loads、load
dumps 把資料型別轉換成字串
dump 把資料型別轉換成字串並儲存在檔案中
loads 把字串轉換成資料型別
load 把檔案開啟從字串轉換成資料型別
dumps編碼
我們利用 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原始型別向json物件的轉化對照表:11
1dict
1object
1list, tuple
1array
1str, unicode
1string
1int, long, flo程式設計客棧at
1number
1true
1true
1false
1false
1none
1null
loads解碼
我們利用 loads 用於解碼 json物件 。解碼結果即與之對應的 python物件 型別。當然 loads 只完成了反序列化, load 只接收檔案描述符,完成讀取檔案和反序列化。
比如我們用來解碼上個示例的資料
import json
jsondata = '''
[ "python3",
100,
, true
]'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
可以看到我們成功對上個例子中的json物件進行了解碼,並且最終的解碼結果為python列表物件型別,符合python物件json物件對照表的結果。
示例結果:
['python3', 100, , true]
總結python3中的json解析和編碼模組json使用起來非常簡單, 功能也非常齊全,完全能夠滿足我們日常的需求。
本文標題: python3 json編碼解碼方法詳解
本文位址: /jiaoben/python/272769.html
Python3 json模組之編碼解碼方法講解
json j ascript object notation 是一種輕量級的資料交換格式,它基於ecmascript的乙個子集。json採用完全獨立於語言的文字格式,這些特性使json成為理想的資料交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,在介面資料開發和傳輸中非常常用。python3中...
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...