1.Python的dict是一种数据结构,JSON是一种数据格式。2.dict的key可以是任意可hash对象,json只能是字符串。{(1,2):1} 在python里是合法的,因为tuple是hashable type; {[1,2]:1} 在python里TypeError: unhashable “list”;3.形式上有些相像,但json是纯文本的,无法直接操作。
一、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数据也可以是字符串、数字、布尔值或列表。