JSON 和 Python中字典的區別

原文鏈接:https://blog.csdn.net/u013250071/article/details/83828587 

一、定義
在python中,json和dict非常類似,都是以key-value的形式存儲數據,

而且json、dict也可以非常方便的通過dumps、loads進行格式的相互轉換。

那既然都是key-value格式,爲啥還需要進行格式轉換呢?

json(JavaScript Object Notation):

json是一種數據格式,是純字符串。可以被解析成Python的dict或者其他形式。

dict(dictionary):

字典是一個完整的數據結構,是對HashTable這一數據結構的一種實現,是一套從存儲到提取都封裝好了的方案。它使用內置的哈希函數來規劃key對應value的存儲位置,從而獲得較快的數據讀取速度。

 

二、json和dict的區別
json的key只能是字符串,python的dict可以是任何可hash對象。

json的key可以是有序、重複的,python的dict的key不可以重複。

json的key存在默認值undefined,dict沒有默認值。

json的value只能是字符串、浮點數、布爾值或者null,或者它們構成的數組或者對象。

json訪問方式可以是[],也可以是.,遍歷方式分in、of,dict的value僅可以通過下標[]訪問。

json的字符串強制雙引號,dict字符串可以單引號、雙引號。

json裏只有數組,dict可以嵌套tuple。

json中的中文必須是unicode編碼,如“你好”在json中應爲"\u4f60\u597d"。

json的數據類型是字符串(str),字典的數據類型是字典(dict)。

json定義布爾值和空值:true、false、null。

python定義布爾值和空值:True、False、None。

 

三、相關知識:hashtable
一個對象當其聲明週期內的hash值不發生改變,並且可以跟其他對象進行比較時,這個對象就是hashtable的。

1、python中的基本類型都是Hashtable,如:

字符串(str)、

數字(int、float)、

元組tuple(只有當tuple內的所有項都是hashtable的時候,tuple纔是hashtable)、

集合set(set始終都是hashtable的,因爲它們所有的項目都是被定義成hashtable的)

等。

2、用戶自定義的類型默認都是hashtable,因爲它們的hash值就是其id值。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章