1. 程式人生 > 實用技巧 >python中如何處理json資料

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