Python基础--dict(或对象)与json之间的区别和互相转化

简介: Python开发中字典和 json的概念与相互转化

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()
目录
相关文章
|
1月前
|
存储 JSON 安全
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
66 0
|
9天前
|
JSON API 数据格式
python的request库如何拿到json的返回值
python的request库如何拿到json的返回值
10 0
|
9天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
52 0
|
10天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
13天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
28 0
|
17天前
|
存储 JSON 数据挖掘
python逐行读取txt文本中的json数据,并进行处理
Python代码示例演示了如何读取txt文件中的JSON数据并处理。首先,逐行打开文件,然后使用`json.loads()`解析每一行。接着,处理JSON数据,如打印特定字段`name`。异常处理包括捕获`JSONDecodeError`和`KeyError`,确保数据有效性和字段完整性。将`data.txt`替换为实际文件路径运行示例。
14 2
|
22天前
|
JSON C语言 数据格式
C语言与lua通过json对象交互
C语言与lua通过json对象交互
17 1
|
23天前
|
JSON 数据格式
Json字符串与QVariantList 对象相互转换
Json字符串与QVariantList 对象相互转换
7 0
|
1月前
|
Python
Python类与对象:深入解析与应用
本文介绍了Python中的核心概念——类和对象,以及它们在面向对象编程中的应用。类是用户定义的类型,描述具有相同属性和行为的对象集合;对象是类的实例,具备类的属性和方法。文章通过示例讲解了如何定义类、创建及使用对象,包括`__init__`方法、属性访问和方法调用。此外,还阐述了类的继承,允许子类继承父类的属性和方法并进行扩展。掌握这些概念有助于提升Python编程的效率和灵活性。
|
1月前
|
JSON JavaScript 前端开发
如何在Python中解析JSON响应?
【2月更文挑战第26天】【2月更文挑战第92篇】如何在Python中解析JSON响应?