1.Json 定義
- 定義:JSON(JavaScript Object Notation, JS 物件簡譜) 是一種輕量級的資料交換格式,JSON 的資料格式其實就是 python 里面的字典格式,里面可以包含方括號括起來的陣列,也就是python里面的串列,
- 特點:簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言, 易于人閱讀和撰寫,同時也易于機器決議和生成,并有效地提升網路傳輸效率,
- 在 JS 語言中,一切都是物件,因此,任何支持的型別都可以通過 JSON 來表示,例如字串、數字、物件、陣列等,但是物件和陣列是比較特殊且常用的兩種型別:
- 物件表示為鍵值對
- 資料由逗號分隔
- 花括號保存物件
- 方括號保存陣列
- 序列化簡單定義:變成 json 格式,定義:變成json格式,
- 反序列化簡單定義: json 格式變其它
""" 字典格式與json格式對比 """ # 字典格式: d = { 'a': 123, 'b': { 'x': ['A', 'B', 'C'] } } # json格式 { "a": 123, "b": { #必須是雙引號(因為java等其它語言有使用雙引號表示字串,單引號不表示字串) "x": ["A", "B", "C"] } }
- 在 python 中,有專門處理 Json 格式的模塊 ——> json 和 picle模塊
- Json 模塊提供了四個方法: dumps、dump、loads、load
- pickle 模塊也提供了四個功能:dumps、dump、loads、load
2.json.dumps() 序列化
- 將 python 的值轉換為 Json 格式的字串,
import json res = { "userAccount":"admin", "loginPwd":"123456" } print(type(res)) du_res = json.dumps(res) # print(du_res) print(type(du_res)) #結果如下 <class 'dict'> <class 'str'>
#json序列化程序中的中文顯示 import json res = { "userAccount":"管理員", "loginPwd":"123456" } du_res = json.dumps(res) print(du_res) #結果如下 {"userAccount": "\u7ba1\u7406\u5458", "loginPwd": "123456"} #轉碼 import json res = { "userAccount":"管理員", "loginPwd":"123456" } du_res = json.dumps(res,ensure_ascii=False) print(du_res) #結果如下 {"userAccount": "管理員", "loginPwd": "123456"}
3.json.loads() 反序列化
- 將 json 格式的字串轉換成 python 的資料型別
import json res = { "userAccount":"管理員", "loginPwd":"123456" } du_res = json.dumps(res,ensure_ascii=False) print(type(du_res)) #將 json 格式的字串轉換成 python 的資料型別 dict lo_res = json.loads(du_res) print(type(lo_res)) #結果如下 <class 'str'> <class 'dict'>
4.json.dump() 序列化

#dump將內容序列化,并寫入打開的檔案中, import json v = {'k1':'yh','k2':'小馬過河'} f = open('xiaoma.txt',mode='w',encoding='utf-8') #檔案不存在就會生成 val = json.dump(v,f) print(val) f.close() #結果如下 None
5.json.load() 反序列化
import json f = open('xiaoma.txt',mode='r',encoding='utf-8') data = json.load(f) f.close() print(data,type(data)) #結果如下 {'k1': 'yh', 'k2': '小馬過河'} <class 'dict'>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/169916.html
標籤:Python
下一篇:python(MD5 單向加密)
