定義
python中,json和dict非常類似,都是key-value的形式,而且json、dict也可以非常方便的通過(guò)dumps、loads互轉(zhuǎn)。既然都是key-value格式,為啥還需要進(jìn)行格式轉(zhuǎn)換?
json(JavaScript Object Notation)
json:是一種數(shù)據(jù)格式,是純字符串。可以被解析成Python的dict或者其他形式。
dict:是一個(gè)完整的數(shù)據(jù)結(jié)構(gòu),是對(duì)Hash Table這一數(shù)據(jù)結(jié)構(gòu)的一種實(shí)現(xiàn),是一套從存儲(chǔ)到提取都封裝好了的方案。它使用內(nèi)置的哈希函數(shù)來(lái)規(guī)劃key對(duì)應(yīng)value的存儲(chǔ)位置,從而獲得O(1)的數(shù)據(jù)讀取速度。
json和dict對(duì)比
json的key只能是字符串,python的dict可以是任何可hash對(duì)象(hashtable type); json的key可以是有序、重復(fù)的;dict的key不可以重復(fù)。 json的value只能是字符串、浮點(diǎn)數(shù)、布爾值或者null,或者它們構(gòu)成的數(shù)組或者對(duì)象。 json任意key存在默認(rèn)值undefined,dict默認(rèn)沒(méi)有默認(rèn)值; json訪問(wèn)方式可以是[],也可以是.,遍歷方式分in、of;dict的value僅可以下標(biāo)訪問(wèn)。 json的字符串強(qiáng)制雙引號(hào),dict字符串可以單引號(hào)、雙引號(hào); dict可以嵌套tuple,json里只有數(shù)組。 json:true、false、null python:True、False、None json中文必須是unicode編碼,如"/u6211". json的類型是字符串,字典的類型是字典。hashtable
一個(gè)對(duì)象當(dāng)其聲明周期內(nèi)的hash值不發(fā)生改變,而且可以跟其他對(duì)象進(jìn)行比較時(shí),這個(gè)對(duì)象就是hashtable的。
1、python中的基本類型都是Hashtable,如str、bytes、數(shù)字類型、tuple等;
2、用戶自定義的類型默認(rèn)都是hashtable,因?yàn)樗鼈兊膆ash值就是id()值;
3、frozenset始終都是hashtable的,因?yàn)樗鼈兯械捻?xiàng)目都是被定義成hashtable的;
4、只有當(dāng)tuple內(nèi)的所有項(xiàng)都是hashtable的時(shí)候,tuple才是hashtable;
總結(jié)
以上所述是小編給大家介紹的on中的json和字典dict,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林站長(zhǎng)站網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選