python中如何處理json資料
JSON的全稱是”JavaScript Object Notation”,意思是JavaScript物件表示法,它是一種基於文字,獨立於語言的輕量級資料交換格式。XML也是一種資料交換格式,為什麼沒有選擇XML呢?因為XML雖然可以作為跨平臺的資料交換格式,但是在JS(JavaScript的簡寫)中處理XML非常不方便,同時XML標記比資料多,增加了交換產生的流量,而JSON沒有附加的任何標記,在JS中可作為物件處理,所以我們更傾向於選擇JSON來交換資料。這篇文章主要從以下幾個方面來說明JSON。
1,JSON的兩種結構
2,認識JSON字串
JSON的兩種結構
JSON有兩種表示結構,物件和陣列。
物件結構以”{”大括號開始,以”}”大括號結束。中間部分由0或多個以”,”分隔的”key(關鍵字)/value(值)”對構成,關鍵字和值之間以”:”分隔,語法結構如程式碼。
{ key1:value1, key2:value2, ... }
其中關鍵字是字串,而值可以是字串,數值,true,false,null,物件或陣列
陣列結構以”[”開始,”]”結束。中間由0或多個以”,”分隔的值列表組成,語法結構如程式碼。
[ { key1:value1, key2:value2 }, { key3:value3, key4:value4 } ]
認識JSON字串
之前我一直有個困惑,分不清普通字串,json字串和json物件的區別。經過一番研究終於給弄明白了。比如在js中。
字串:這個很好解釋,指使用“”雙引號或’’單引號包括的字元。例如:var comStr = 'this is string';
json字串:指的是符合json格式要求的js字串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json物件:指符合json格式要求的js物件。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };
注意:我們在寫入檔案中的資料,只能是字串,但是如果要想把記憶體的資料物件存到硬碟上去怎麼辦吶?
總結:如果是從檔案中讀資料,就用json.load,因為檔案中的資料都是字串型別,要把字串轉成json型別;如果是把記憶體中的東西,寫入到檔案中,就需要把json型別轉換成字串型別,用json.jump
dump()
import json info = { 'name':"zhangqigao", "age":22 } with open("test.txt","w") as f: #檔案以寫的方式開啟 json.dump(info,f) #第1個引數是記憶體的資料物件 ,第2個引數是檔案控制代碼 #text.txt檔案中的內容 {"name": "zhangqigao", "age": 22}
load()反序列化
import json with open("test.txt","r") as f: #以讀的方式開啟檔案 data = json.load(f) #輸入檔案物件 print(data.get("age")) #輸出 22