我們在做工作中經常會使用到json模塊,今天就簡單介紹下json模塊
什么是json
JSON ,全稱為JavaScript Object Notation, 也就是JavaScript 對象標記,它通過對象和數組的組合米表示數據,構造簡潔但是結構化程度非常高,是一種輕量級的數據交換格式。json模塊在python中可以作為數據解析json
對象和數組
在JavaScript 語言中,一切都是對象。任何支持的類型都可以通過JSON來表示,例如字符串、數字、對象、數組等,但是對象和數組是比較特殊且常用的兩種類型
對象:它在JavaScript中是使用花括號{ }包裹起來的內容,數據結構為{ keyl : valuel,key2:value2}的鍵值對結構。在面向對象的語言中,key為對象的屬性,value 為對應的值。鍵名可以使用整數和字符串來表示。值的類型可以是任意類型。
數組:數組在JavaScript中是方括號[]包裹起來的內容,數據結構為[ ”java ” ,” javascript ”,"vb " ]的索引結構。在JavaScript中, 數組是一種比較特殊的數據類型,它也可以像對象那樣使用鍵值對,但還是索引用得多。同樣,值的類型可以是任意類型。
JSON對象格式
會發現和我們的字典格式是不是特別的一樣
# 格式為{"name":"value"}
[{"name":"AnJing","age":"26" }]
JSON簡單使用
loads()方法
使用方法loads()將 json文字轉化成json對象
# coding:utf-8 import json str = ''' [{ "name":"AnJing", "age":"26" }] ''' data = json.loads(str) print(data) print(type(data)) print(data[0]['name']) # 通過下標進行選擇 print(data[0].get('name')) 代碼結果: [{'name': 'AnJing', 'age': '26'}] <class 'list'> AnJing AnJing
注意:在使用loads的時候json字符串必須要用雙引號表示,否則會報錯
(json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 12))
dumps()方法
使用dumps()方法將json轉換成字符串
# coding:utf-8 import json str = [{ "name":"AnJing", "age":"26" }] print(type(str)) data = json.dumps(str) print(type(data)) print(data) 代碼結果: <class 'list'> <class 'str'> [{"name": "AnJing", "age": "26"}]
另外如果想要保存的文字好看點,我們可以增加一個參數indent,代表縮進字符個數,已經可以寫入中文的時候不會亂碼,加入ensure_ascii=False
# coding:utf-8 import json str = [{ "name":"安靜", "age":"26", "性別":"男" }] # indent 表示縮進 # ensure_ascii=False 表示寫入中文 with open('123.json','w',encoding='utf-8')as f: f.write(json.dumps(str,indent=2,ensure_ascii=False)) 代碼結果: [ { "name": "安靜", "age": "26", "性別": "男" } ]
load()方法
將文件內容轉換成json數據
# 導入json模塊 import json str = [{ "name":"AnJing", "age":"26" }] # 通過dumps寫入文件中 with open('123.json','w')as f: f.write(json.dumps(str)) # 通過load將數據轉換成json data = json.load(open('123.json','r')) print(data) 代碼結果: [{'name': 'AnJing', 'age': '26'}]
dump()方法
將json數據寫入到文件中
# coding:utf-8 import json str = [{ "name":"AnJing", "age":"26" }] # 通過dump寫入到json中 json.dump(str,open('123.json','w')) # 通過load查看是否寫入 data = json.load(open('123.json','r')) print(data) 代碼結果: [{'name': 'AnJing', 'age': '26'}]
簡單的寫了寫json模塊的使用方法,以及json的簡單介紹,歡迎繼續補充沒有涉及到的知識。
感覺寫的對您有幫助的,點個關注不迷路~~~~
