1. 程式人生 > >json和python中的字典的區別與聯絡

json和python中的字典的區別與聯絡

json:

json是一種資料的表現形式,是一種資料格式:比如在ajax中的資料接收型別,一般都是json型別的資料格式,也會有txt的資料格式;如下程式碼所示:

$.ajax({
    url: '/change_data',
    type: 'GET',
    dataType: 'json',  //  json 為接收伺服器返回的資料型別
    data:{'code':300268}
    success:function(dat){
        alert(dat.name);
    },
    error:function(){
        alert('伺服器超時,請重試!');
    }
});

json的含義與鍵值的寫法:

json是 【JavaScript Object Notation】 的首字母縮寫,字面的意思是【javascript物件表示法】,這裡說的json指的是類似於javascript物件的一種資料格式物件,目前這種資料格式比較流行,逐漸替換掉了傳統的xml資料格式。

json資料物件類似於JavaScript中的物件,但是它的鍵對應的值裡面是沒有函式方法的,值可以是普通變數不支援undefined,值還可以是陣列或者json物件

與JavaScript物件寫法不同的是,json物件的屬性名稱和字串值需要用雙引號引起來,用單引號或者不用引號會導致讀取資料錯誤。

  1. json格式的資料:

{ “name”:“tom”, “age”:18 }

  1. json的另外一個數據格式是陣列,和javascript中的陣列字面量相同。 [“tom”,18,“programmer”]

  2. 還可以是更復雜的資料機構:包括普通變數陣列json物件

{ “name”:“jack”, “age”:29, “hobby”:[“reading”,“travel”,“photography”] “school”:{ “name”:“Merrimack College”, “location”:‘North Andover, MA’ } }

字典:

區別總結:

定義上字典是一種資料結構; json

是一種資料的表現形式,一種資料格式。

寫法上字典中的鍵key,只要是hashable的資料型別即可;但是json的鍵key(屬性名稱),必須是用雙引號引起來的字串。

關於 -hashable的資料型別-,簡單理解,就是不可變的資料型別;所以在字典中的鍵,可以是元組或者字串等不可變的資料型別。