json与dict的区别与联系

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

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

总结:
json的特点
1. 字符串外边有单引号
2. json是类字典的形式,里面的键-值对规定必须使用双引号,值如果是数字可以不加双引号,
但是键必须是双引号引起来的字符串, json的值可以是普通变量,数组,json对象

缺点:
json只有null、布尔、数字、字符串、数组和对象这几种数据类型,JSON没有日期类型

使用单引号或者不使用符号会报错,因为是一种数据格式所以其更严格,

json转换成字典后进行操作

字典是一种数据结构,其具有O(1)的时间复杂度,例如python中所述的tuple list,list集合set

区别总结::

定义上:字典是一种数据结构

json是一种数据的表现形式,一种数据格式

写法上:

字典中的key,只要是hanshabke的数据类型即可,但是json的键key(属性名称)必须使用双引号

关于 -hanshable的数据结构,简单理解,是不可变的数据类型;所以在字典中的键,可以是元组或者字符串等不可变的数据类型

对比

1) json的key智能是字符串,dict可以是任何可hansh的对象,字符串、数字、元组等

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

Python  --字典(增删改查)

字典里可以增加函数

字典里面fuck()   或者  不带() 但是在后面增加()【如下图】也能执行函数

def fuck():
    print('fuck')
    print('我是你的字典召唤')
dict_test={'apple':fuck}
print(dict_test['apple']())#直接执行函数

字典是按照键值对(key,value)的形式存在,没有索引

需要学习的方法-->增删改查

# 字典定义
dict1={}
dict2=dict()


# 增加字典里面的值
# 字典名[键名]=值名
dict1['user']={}
print(dict1)

#改值
dict1['user']={'admin','password'}
print(dict1)

# 删除pop弹出方法
value=dict1.pop('user')
print(value)
print(dict1)

#字典的合并 同时相应的同键值也会覆盖
dict2={'major':'atomation'}
dict1.update(dict2) #update 意思相同的键值也会被覆盖
print(dict1)

# 字典的遍历 遍历key而不是值
for k in dict1:
    print(k)
    
# 字典的清空
dict1.clear()
print(dict1)

# 数量
length=len(dict1)
print(length)


[1] 参考链接:https://blog.csdn.net/qq_40994972/article/details/84189430

[2] 参考连接 :https://blog.csdn.net/gymaisyl/article/details/82355028

[3] 参考连接 python 字典与json的区别_u010569893的博客-CSDN博客_json和字典有什么区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值