一、python的dict和json數(shù)據(jù)
區(qū)別
Python的dict是一種數(shù)據(jù)結(jié)構(gòu),JSON是一種數(shù)據(jù)格式。dict的key可以是任意可hash對(duì)象,json只能是字符串。{(1,2):1}?在python里是合法的,因?yàn)閠uple是hashable type;?{[1,2]:1}?在python里TypeError: unhashable “l(fā)ist”形式上有些相像,但json是純文本的,無法直接操作。dict字符串用單引號(hào),json強(qiáng)制規(guī)定雙引號(hào)。dict里可以嵌套tuple,?json里只有array。?json.dumps({1:2})?的結(jié)果是?{“1”:2},?json.dumps((1,2))?的結(jié)果是[1,2]json: true|false|null?;?dict:True|False|None聯(lián)系
dict?存在于內(nèi)存中,可以被序列化成?json?格式的數(shù)據(jù)(string),之后這些數(shù)據(jù)就可以傳輸或者存儲(chǔ)了。
總結(jié)
JSON?是一種數(shù)據(jù)傳輸格式。
也就是說,這些字符串以?JSON?這樣的格式來傳輸,至于你怎么?parse?這些信息,甚至是是否?parse, 是否儲(chǔ)存,都不是?JSON?的事情。
用 Python 舉個(gè)例子: 某段程序可以把字符串?“{A:1, B:2}”parse?成 一對(duì)?tuple: ( (“A”, 1), (“B”, 2) )而不是?dictionary: {“A”: 1, “B”: 2}.
所以?JSON?它能被解析成 Python 的?Dictionary?或者其他形式,但解析成什么內(nèi)容是和?JSON?這種格式無關(guān)的。
Python 的?Dictionary?則是 Python 對(duì) Hash Table 的實(shí)現(xiàn),一套從存儲(chǔ)到提取都封裝好了的方案。
延伸閱讀:
二、什么是JSON
JSON或JavaScript Object Notation,是一種使用文本存儲(chǔ)數(shù)據(jù)對(duì)象的格式。換句話說,它是一種數(shù)據(jù)結(jié)構(gòu),將對(duì)象用文本形式表示出來。盡管它來源自JavaScript,但它已成為傳輸對(duì)象的實(shí)際標(biāo)準(zhǔn)。
大多數(shù)流行的編程語言都支持JSON格式,包括Python。JSON格式的文件經(jīng)常用于API傳輸數(shù)據(jù)對(duì)象。以下是JSON字符串的示例:
{
?? “name”: “United States”,
?? “population”: 331002651,
?? “capital”: “Washington D.C.”,
?? “l(fā)anguages”: [
? “English”,
? “Spanish”
?? ]
}
在這個(gè)例子中,JSON數(shù)據(jù)看起來像一個(gè)Python字典。像字典一樣,JSON以鍵值對(duì)的形式傳遞數(shù)據(jù)。然而,JSON數(shù)據(jù)也可以是字符串、數(shù)字、布爾值或列表。