四时宝库

程序员的知识宝库

Python的dict和json区别

大家有没有发现,python中的字典类型的数据结构,和我们目前比较流行的web端的json格式,非常类似,几乎有点分不清了。那么这2者的区别是什么呢?

首先,从概念上,我们要理解这2者是截然不同的。

python中的dict类型是一种数据结构,而json是一种数据格式。json是一种数据格式,就对格式有严格的要求,比如key,value必须用双引号作为边界符,不能用单引号。而python中的dict类型则可以用单引号,也可以用双引号作为边界符。

其次,json和dict的区别对比,可以从以下几点来看出:

  1. json中的key只能是字符串,而dict则可以是任何可hash的对象;
  2. json中的key可以是有序,重复的,但dict中的key不可以重复;
  3. json中的任意key可以有默认值undefined,但dict中的key没有默认值;
  4. json中任何key的访问方式和dict的key的访问方式不同;

总而言之,json本质上还是字符串,只是用key,value这种键值对的方式来表示,而dict则是一种数据结构。

在python中,dict可以转换为json格式,而json格式的字符串,也可以转换为dict。下面我们就用几个程序来看看这2者之间是如何转换的,以及转换之后的区别在哪里?



我们从这2者的定义就可以看出区别,d是一个字典类型的变量数据,j是一个字符串,用单引号引起来的字符串,该字符串内是json格式。那么打印这2者的结果显示是:


打印的d是字典数据结构打印,默认是单引号来作为key的边界值,而j则是以json格式打印,必须是双引号作为key,value的边界符。

接下来,我们将二者进行转换:


再来看下这2者转换后的打印结果:


将dict转换为json格式,我们可以指定json格式的显示,比如缩进,分隔符;将json格式的变量转换为dict,默认就是单引号来作为key,value的边界符。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接