首先,由于他们两个都是键值对,一个key配合一个value,所以会给人很相似的感觉,但其实他们是有区别的。
1.数据类型不同
(1)JSON是一种轻量级的文本数据交换格式,常用于不同系统之间的前后端数据传输和存储
(2)字典则是Python语言内置的数据类型,用于在程序内部操作和存储数据
总结:
首先,字典和json有着本质的区别,字典是一种在python中的数据结构,类似于其他语言中的map,是用哈希表(具体哈希表的实现原理可以展开说好多,应该不会问)实现的。
Json是一种文本格式,他只是将文本用某种特定的格式组合起来,其实换句话说,Json就是特定格式的字符串对象。我们可以通过python中的json模块去将一个纯string转化为json。
2.应用场景不同
(1)JSON通常用于Web API的数据传输和跨平台数据存储,如Web前后端之间的数据交换、在不同编程语言和系统之间传送数据等
(2)字典一般用于程序内部的数据管理和处理,如在Python中实现散列表或映射等操作.
总结:
由于其本质不同,所以应用场景不同,json的应用场景为前后端数据交换,不同编程语言和系统之间数据交换。但是字典,由于其特殊性,增加,删除,查找的时间复杂度为O(1),因此,一般在程序中存储数据,字典在大量数据下仍能保持较高的访问速度。
字典和json之间可以互相转化的:
1. 字典转json
import json
info_dict = {'name': 'Joe', 'age': 20, 'job': 'driver'}
info_json = json.dumps(info_dict, sort_keys=False, indent=4, separators=(',', ': '))
print(type(info_json)) # 输出 <class 'str'>
2. json转字典
import json
json_str = '{"name": "Alice", "age": 25, "city": "New York"}'
data_dict = json.loads(json_str)
print(data_dict) # 输出 {'name': 'Alice', 'age': 25, 'city': 'New York'}