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