JSON 和 Python中字典的区别

本文详细对比了JSON和Python字典(dict)的主要区别,包括数据格式、数据类型、访问方式、字符串引用、嵌套结构及Unicode编码要求。同时介绍了hashtable概念及其在Python中的应用。

一、定义

在python中,json和dict非常类似,都是以key-value的形式存储数据,

而且json、dict也可以非常方便的通过dumps、loads进行格式的相互转换。

那既然都是key-value格式,为啥还需要进行格式转换呢?

json(JavaScript Object Notation):

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

dict(dictionary):

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

 

二、json和dict的区别

json的key只能是字符串,python的dict可以是任何可hash对象。

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

json的key存在默认值undefined,dict没有默认值。

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

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

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

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

json中的中文必须是unicode编码,如“你好”在json中应为"\u4f60\u597d"

json的数据类型是字符串(str),字典的数据类型是字典(dict)。

json定义布尔值和空值:true、false、null

python定义布尔值和空值:True、False、None。

 

三、相关知识:hashtable

一个对象当其声明周期内的hash值不发生改变,并且可以跟其他对象进行比较时,这个对象就是hashtable的。

1、python中的基本类型都是Hashtable,如:

字符串(str)、

数字(int、float)、

元组tuple(只有当tuple内的所有项都是hashtable的时候,tuple才是hashtable)、

集合set(set始终都是hashtable的,因为它们所有的项目都是被定义成hashtable的)

等。

2、用户自定义的类型默认都是hashtable,因为它们的hash值就是其id值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值