python当中的字典、json字符串和字典的区别

字典的表达式 dict = {}

字典是无序的、是以key:value形式存储数据

1、字典的定义

第一种定义方法
dict1 = {'name':'xiaowang','age':18}
print(dict1)
print(type(dict1))         # 数据类型为:字典 <class 'dict'>
第二种定义方法
test = [('name','xiaowang'),('age',18)]
dict1 = dict(test)         # 通过dict方法把一个列表转换为字典
print(dict1)               # {'name': 'xiaowang', 'age': 18}
print(type(dict1))         # 数据类型为:字典  <class 'dict'>

2、字典当中的常用的函数

2.1、增加、修改 键值对

dict1 = {'name':'xiaowang','age':18}
dict1['class'] = 2008
print(dict1)
dict1['age'] = 16         # 当原字典当中存在设置的键时、会对之前的数据进行覆盖
print(dict1)

2.2、keys 取出字典中的键 ==》for是遍历的意思

dict1 = {'name':'xiaowang','age':18}
for i in dict1.keys():
    print(i)                               # 结果:name   age

2.3、values 取出字典中的值

dict1 = {'name':'xiaowang','age':18}
for i in dict1.values():
    print(i)                               # xiaowang    18

2.4、取出键对应的值

dict1 = {'name':'xiaowang','age':18}
print(dict1['name'])                       # xiaowang

2.5、setdefault 设置键值对

dict1 = {'name':'xiaowang','age':18}
dict1.setdefault('class')        # 只设置键 {'name': 'xiaowang', 'age': 18, 'class': None}
print(dict1)
dict1.setdefault('class',2008)
print(dict1)
dict1.setdefault('name','xiaochen')        # 当原字典当中存在设置的键时、设置的键值对无效
print(dict1)

2.6、del 删除键值对

dict1 = {'name':'xiaowang','age':18}
del dict1['name']
print(dict1)                               #{'age': 18}

2.7、del 删除字典 

dict1 = {'name':'xiaowang','age':18}
del dict1                       # 全部删除
print(dict1)                    # NameError: name 'dict1' is not defined    字典没有定义

2.8、items 对字典进行for循环遍历

dict1 = {'name':'xiaowang','age':18}
for i in dict1:
    print(i,dict1[i])                       # dict1[i] 就是通过i这个键拿到对应的值
​
# 对字典进行for循环遍历
dict1 = {'name':'xiaowang','age':18}
for k,v in dict1.items():
    print(k,v)
​
dict1 = {'name':'xiaowang','age':18}
for i in dict1.items():
    print(i)
print(type(i))                              # <class 'tuple'>

2.9、pop函数 删除(不能索引位删除)

dict1 = {'name':'xiaowang','age':18}
print(dict1.pop('name'))      # 返回的是删除的这个键对应的值  xiaowang
print(dict1)                  # {'age': 18}   # 返回的是删除了之后剩余的值

2.10、clear函数 全部删除键值对

dict1 = {'name':'xiaowang','age':18}
dict1.clear()
print(dict1)    # 结果为:{}

2.11、get函数 通过对应的键拿到对应的值

dict1 = {'name':'xiaowang','age':18}
print(dict1.get('name'))       # xiaowang
print(dict1.get('age'))        # 18
print(dict1.get('age1'))       # None    不存在返回空

2.12、fromkeys函数 给具体的键指定值

dict1 = {'name':'xiaowang','age':18}
dict2 = {}.fromkeys(['name','age'])     # 初始化一个字典
dict2['name'] = 'zhangsan'
print(dict2)                                  # {'name': 'zhangsan', 'age': None}
print({}.fromkeys(['name','age']))            # {'name': None, 'age': None}
print({}.fromkeys(['name','age'],'test'))     # {'name': 'test', 'age': 'test'}

2.13、contains函数 判断字典是否包含指定的键

dict1 = {'name':'xiaowang','age':18}
print(dict1.__contains__('name'))    # True
if dict1.__contains__('name1') is True:
    print('存在此键')
else:
    dict1.setdefault('name1','test')   # 设置键值
    print(dict1)

2.14、popitem函数 随机删除 一般是删除最后

dict1 = {'name':'xiaowang','age':18}
# 用法一:
dict1.popitem()
print(dict1)             # 打印剩下的  结果:{'name': 'xiaowang'}
​
# 用法二:
print(dict1.popitem())   # 打印删除的  结果:('name', 'xiaowang')
print(dict1)

2.15、update函数 利用一个字典更新另外一个字典

dict1 = {'name':'xiaowang','age':18}
dict2 = {'name':'xiaochen'}
# dict2 = {'class':2008}
dict1.update(dict2)      # 如果要更新的元素项在原字典里存在,则把原来的项覆盖
print(dict1)

json字符串和字典的区别:

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

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

1、字典的类型是字典dict,是一种数据结构;json的类型是字符串str,json是一种格式; 接口测试是传参数payload时有时候是传的字符串,应该将payload的类型改为json

2、python dict 字符串用单引号,json强制规定双引

3、 json值可以是新的键值对(多层嵌套结构),字典的值一般只能是数值、文本

4、 json键名允许重复,字典不允许

5、结构相似,都是键值对
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值