python中,json和dict非常類似,都是key-value的形式,而且json、dict也可以非常方便的通過dumps、loads互轉。
定義
python中,json和dict非常類似,都是key-value的形式,而且json、dict也可以非常方便的通過dumps、loads互轉。既然都是key-value格式,為啥還需要進行格式轉換?
json(JavaScriptObjectNotation)
json:是一種數據格式,是純字符串。可以被解析成Python的dict或者其他形式。
dict:是一個完整的數據結構,是對HashTable這一數據結構的一種實現,是一套從存儲到提取都封裝好了的方案。它使用內置的哈希函數來規劃key對應value的存儲位置,從而獲得O(1)的數據讀取速度。
json和dict對比
json的key只能是字符串,python的dict可以是任何可hash對象(hashtabletype);
json的key可以是有序、重復的;dict的key不可以重復。
json的value只能是字符串、浮點數、布爾值或者null,或者它們構成的數組或者對象。
json任意key存在默認值undefined,dict默認沒有默認值;
json訪問方式可以是[],也可以是.,遍歷方式分in、of;dict的value僅可以下標訪問。
json的字符串強制雙引號,dict字符串可以單引號、雙引號;
dict可以嵌套tuple,json里只有數組。
json:true、false、null
python:True、False、None
json中文必須是unicode編碼,如"\u6211".
json的類型是字符串,字典的類型是字典。
hashtable
一個對象當其聲明周期內的hash值不發生改變,而且可以跟其他對象進行比較時,這個對象就是hashtable的。
1、python中的基本類型都是Hashtable,如str、bytes、數字類型、tuple等;
2、用戶自定義的類型默認都是hashtable,因為它們的hash值就是id()值;
3、frozenset始終都是hashtable的,因為它們所有的項目都是被定義成hashtable的;
4、只有當tuple內的所有項都是hashtable的時候,tuple才是hashtable。
以上內容為大家介紹了python培訓之字典和json有什么區別,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。