新聞中心
定義
python中,json和dict非常類似,都是key-value的形式,而且json、dict也可以非常方便的通過dumps、loads互轉(zhuǎn)。既然都是key-value格式,為啥還需要進(jìn)行格式轉(zhuǎn)換?
json(JavaScript Object Notation)
json:是一種數(shù)據(jù)格式,是純字符串??梢员唤馕龀蒔ython的dict或者其他形式。
dict:是一個(gè)完整的數(shù)據(jù)結(jié)構(gòu),是對(duì)Hash Table這一數(shù)據(jù)結(jié)構(gòu)的一種實(shí)現(xiàn),是一套從存儲(chǔ)到提取都封裝好了的方案。它使用內(nèi)置的哈希函數(shù)來規(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)沒有默認(rèn)值;
- json訪問方式可以是[],也可以是.,遍歷方式分in、of;dict的value僅可以下標(biāo)訪問。
- 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ì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)站名稱:詳解python中的json和字典dict-創(chuàng)新互聯(lián)
本文地址:http://fisionsoft.com.cn/article/eohoo.html