序列化:將物件的狀態資訊轉換為可以儲存或可以通過網路傳輸的過程,傳輸的格式可以是json,xml。
反序列化:就是從儲存區域(json,xml)讀取反序列化物件的狀態,重新建立該物件
python3 中可以使用 json 模組來對 json 資料進行編譯碼,它包含了兩個函式:
在json的編譯碼過程中,python 的原始型別與json型別會相互轉換,具體的轉化對照如下:
python
json
dict
object
list, tuple
array
str
string
int, float, int- & float-derived enums
number
true
true
false
false
none
null
json
python
object
dict
array
list
string
str
number (int)
int
number (real)
float
true
true
false
false
null
none
1、以下例項演示了 python 資料結構轉換為json:
1'''2
author:ranxf
3'''45
import
json67
#python 字典型別轉換為json物件
8 data =
2425 json_str =json.dumps(data)
26print("
python 原始資料:
", repr(data))
27print("
json 物件:
", json_str)
執行結果:
python 原始資料:json 物件:
process finished with exit code 0
2、將乙個json編碼的字串轉回乙個python資料結構:
1'''2
author:ranxf
3'''45
import
json67
#python 字典型別轉換為json物件
8 data =
2425 json_str = json.dumps(data)
26print("
python 原始資料:
", repr(data))
27print("
json 物件:
", json_str)
2829
#將json物件轉換為python字典
30 data2 =json.loads(json_str)
31print("
data2['neme']:
", data2['
name'])
32print("
data2['organizationname']:
", data2['
organizationname
'])
執行結果:
/usr/bin/python3.5 /media/ranxf/13ea76aa-89fc-4228-8e84-40e5707bc91b/python3_1000/1000/python3_server/python3_json/learn_json.pypython 原始資料:
json 物件:
data2['neme']: 測試人
data2['organizationname']: 測試組織
注意該python原始資料中有中文,在轉換為json物件後,輸出顯示為unicode編碼"organizationname": "\u6d4b\u8bd5\u7ec4\u7ec7","name": "\u6d4b\u8bd5\u4eba"
解決這個問題的辦法:
**json_str =json.dumps(data)
變為:json_str = json.dumps(data, ensure_ascii=false)
3、如果需要處理的是檔案而不是字串,使用json.dump()和json.load()來編碼和解碼json資料。例如:
'''author:ranxf
'''import
json
data =
with open(
'data1.json
', 'w'
) as f:
json.dump(data, f, ensure_ascii=false)
#讀取資料
with open('
data.json
', 'r'
) as f:
data =json.load(f)
print(data)
寫入如果不加(, ensure_ascii=false
)資料執行結果:
加入**中json.dump(data, f, ensure_ascii=以上執行結果主要看中文字段區別即可(乙個是unicode顯示,乙個中utf8顯示)false)下劃線部分,寫入data.json的資料為:
參考:
Python3 json模組之編碼解碼方法講解
json j ascript object notation 是一種輕量級的資料交換格式,它基於ecmascript的乙個子集。json採用完全獨立於語言的文字格式,這些特性使json成為理想的資料交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,在介面資料開發和傳輸中非常常用。python3中...
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....