python中的字典和json非常像,但是二者却是两种完全不同的概念,下面对二者的区别做一下介绍。
先唠叨一下二者的定义。
什么是字典?
字典是另一种可变容器模型,且可存储任意类型对象。
dict是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划key对应value的存储位置,从而获得O(1)的数据读取速度。
什么是json?
json是JavaScript Object Notation的首字母缩写,字面的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式对象,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式, 前端使用ajax的时候后台返回该前端的数据格式就是json格式的。
概括一下:字典是一种数据结构,但是json是一种数据格式。
字典作为一种数据结构,有很多内置方法,有各种调用方法,而json作为一种数据格式,不像json一样具有这么多可操作性。
字典和json的具体区别如下:
json的key必须是字符串,字典的key可以不是字符串;
json的key可以是重复的,字典的key不可以是重复值,如果有重复值,会被自动过滤掉;
json的key和value强制双引号,如果用双引号会报错,字典的key和value既可以是单引号,也可以是双引号;
json中文必须是unicode编码,如"\u8d1d\u58f3\u627e\u623f",字典的key和value可以是中文。
python中json和字典的转换方法:
#!/usr/bin/pythonimport jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)print(type(text))