您好,登錄后才能下訂單哦!
什么是JSON?
JSON 的全稱是 JavaScript Object Notation,即 JavaScript 對象符號,它是一種輕量級、跨平臺、跨語言的數據交換格式,其設計意圖是把所有事情都用設計的字符串來表示,這樣既方便在互聯網上傳遞信息,也方便人進行閱讀。
JSON 主要有兩種數據結構:
當程序把 JSON 對象或 JSON 字符串轉換成 Python 對象時,從 JSON 類型到 Python 類型的轉換關系如下所示:
JSON類型Python類型JSON 類型Python 類型對象(object)字典(dict)數組(array列表(list)字符串(string)字符串(str)整數(number(int))整數(int)實數(number(real))浮點數(float)trueTruefalseFalsenullNone
同樣的,當程序把 Python 對象轉換成 JSON 格式字符串時,從 Python 類型到 JSON 類型的轉換關系如下所示:
Python類型JSON類型Python 類型JSON 類型字典(dict)對象(object)列表(list)和元組(tuple)數組(array)字符串(str)字符串(string)整型、浮點數,枚舉數值型(number)TruetrueFalsefalseNonenull
Python3 中可以使用 json 模塊來對 JSON 數據進行編解碼,它包含了兩個函數:
== 使用dumps函數對數據進行編碼==
import json # 創建字典類型Person person = { 'name': '知秋小夢', 'gender': 'male', 'age': 18 } # Python字典類型轉換為JSON對象 json_person = json.dumps(person) print(json_person) # 輸出 {"name": "\u77e5\u79cb\u5c0f\u68a6", "gender": "male", "age": 18}
輸出的中文是中文的ascii字符碼,而不是真正的中文。
這是因為json.dumps 序列化時對中文默認使用的ascii編碼
因此需要使用ensure_ascii=False來指定出中文
# 設置不適用ascll編碼 json_person = json.dumps(person,ensure_ascii=False) print(json_person) # 輸出 {"name": "知秋小夢", "gender": "male", "age": 18}
==
使用loads函數對數據進行解碼
==
# 將 JSON 對象轉換為 Python 字典 dict_person = json.loads(json_person) print("person['name']: ",dict_person['name']) print("person['age']: ", dict_person['age']) # 輸出 person['name']: 知秋小夢 person['age']: 18
dumps()和loads()主要用于Python和json對象的相互轉化,dump()與load()主要用于讀寫json文件
# 寫入 JSON 數據 with open('data.json', 'w', encoding='utf-8') as f: json.dump(data, f) # 讀取 JSON 數據 with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f)
JSON作為數據存儲、交互用的比較多,比如網頁cookie、數據交互等,建議掌握!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。