python字典与json的区别

一. python的字典和json字符串的区别
python中,json和dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads互转,但是它们之间还是有区别的:

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

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

二. json和dict对比
1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等。

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

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

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

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

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

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

8)json:true、false、null

9)dict:True、False、None

10)json中文必须是unicode编码,如“\u6211”

11)json的类型时字符串,字典的类型是dict
举例

#coding:utf-8
import sys
import json

dict = {"name":"王五", "age":29, "is_male":False, "school":None}
print("dict:", dict)

"""
函数:json.dumps()
描述:将 Python对象 编码成 JSON字符串
"""
my_json=json.dumps(dict)
print("my_json:", my_json)

运行结果

dict: {'name': '王五', 'age': 29, 'is_male': False, 'school': None}
my_json: {"name": "\u738b\u4e94", "age": 29, "is_male": false, "school": null}

 

posted @ 2022-02-28 16:03  一只艾米果  阅读(470)  评论(0编辑  收藏  举报