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

json與dict的區別

  • Python 的dict是一種數據結構,json 是一種數據傳輸格式
  • Python的dict的key可以是任意可hash對象,json只能是字符串。形式上有些相像,但json是純文本的,無法直接操作
  • json的格式要求必須且只能使用雙引號作為key或者值的邊界符號,不能使用單引號,但dict就無所謂了。
  • python的dict的Key是唯一的,而json的Key可以重復。
  •  

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM