Python开发中字典和 json的概念区别:


一、字典


字典是一种数据结构,而json是一种数据格式,格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号(值如果是数字可以不用加双引号),不能使用单引号,用单引号或者不用引号会导致读取数据错误,而且“key”必须使用边界符(双引号),但字典就无所谓了,可以使用单引号,也可以使用双引号。

dict是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划key对应value的存储位置,从而获得O(1)的数据读取速度。


二、json


json是JavaScript Object Notation的首字母缩写,字面的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式对象,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式, 前端使用ajax的时候后台返回该前端的数据格式就是json格式的。

json是一种数据格式,是纯字符串。可以被解析成Python的dict或者其他形式。


三、json和dict区别对比


json的key只能是字符串,python的dict可以是任何可hash对象(hashtable type);

json的key可以是有序、重复的;dict的key不可以重复。

json的value只能是字符串、浮点数、布尔值或者null,或者它们构成的数组或者对象。

json任意key存在默认值undefined,dict默认没有默认值;

json访问方式可以是[],也可以是.,遍历方式分in、of;dict的value仅可以下标访问。

json的字符串强制双引号,dict字符串可以单引号、双引号;

dict可以嵌套tuple,json里只有数组。

json:true、false、null

python:True、False、None

json中文必须是unicode编码,如"\u6211".

json的类型是字符串,字典的类型是字典。

json 本质上还是字符串,只是按 key:value 这种键值对的格式来的字符串

• import json
• name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} #定义一个字典
• jsObj = json.dumps(name_emb)      #把字典转成json字符串
• print(name_emb)
• print(jsObj)
• print(type(name_emb))
• print(type(jsObj))
• 运行结果如下:
• {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}  #字典
• {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}  #jason字符串本质还是str字符串
• <type 'dict'>
• <type 'str'>

• import json
• a = {"a": 1, "b": 2, "c": True}  # 定义1个字典
• b = '{"a": 1, "b": 2, "c": true}'  #定义一个json格式str,就是json字符串
• print(type(a))
• print(json.dumps(a))      #把dict转 json
• 运行结果
• <class 'dict'>
• {"a": 1, "b": 2, "c": true}
• <class 'str'>
• {'a': 1, 'b': 2, 'c': True}

转化方法:

json模块有2个方法,

  • loads() :将json数据转化成dict数据
  • dumps() :将dict数据转化成json数据
  • load() :读取json文件数据,转成dict数据
  • dump() :将dict数据转化成json数据后写入json文件
• import json
• def dict_to_json_write_file():
• dict = {}
• dict['name'] = 'many'
• dict['age'] = 10
• dict['sex'] = 'male'
• print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
• with open('1.json', 'w') as f:
• json.dump(dict, f)  # 会在目录下生成一个1.json的文件,文件内容是dict数据转成的json数据
• if __name__ == '__main__':
• dict_to_json_write_file()

• import json
• def json_file_to_dict():
• with open('1.json', 'r') as f:
• dict = json.load(fp=f)
• print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
• if __name__ == '__main__':
• json_file_to_dict()
【Python】【MySQL】Python将JSON数据以文本形式存放到MySQL的Text类型字段中
【Python】【MySQL】Python将JSON数据以文本形式存放到MySQL的Text类型字段中
django drf 案例--实现url编码和json和dict格式转化小工具(涉及定义模型类,序列化器,类视图,路由),接口测试
django drf 案例--实现url编码和json和dict格式转化小工具(涉及定义模型类,序列化器,类视图,路由),接口测试
如何使用Request方法发送Post请求、JSON文件介绍、Python中的JSON数据以及获取到的JSON数据的解析。
如何使用Request方法发送Post请求、JSON文件介绍、Python中的JSON数据以及获取到的JSON数据的解析。
如何使用Python对嵌套结构的JSON进行遍历获取链接并下载文件
JSON(JavaScript Object Notation)是一种基于JavaScript语言的轻量级数据交换格式,它用键值对的方式来表示各种数据类型,包括字符串、数字、布尔值、空值、数组和对象,本文展示如何使用Python对嵌套结构的JSON进行遍历获取链接并下载文件。