字典与json格式
本章小结:
1、字典的概念和特性?字典有什么优点?
2、字典的常用操作有哪些?怎么遍历字典?
3、json.loads()和 json.dumps(),字典与json格式的相互转化。(注意json的标准格式)
#字典的定义和特性,字典是以键值对形式出现的存储对象;
# 1、字典是可变对象,
# 2、字典的键可以存放不可变对象。 #例如可以放数字、字符串、元组
# 3、字典的值可以存放任意类型的对象,
# 4、字典的键是唯一的, #后面的会替换前面的
# 5、字典是无序的
dict = {'蒙':'蒙的意思'} #dict = {'键':'值'}
##
dict1 = {'A':'12','B':'13','C':'以上都不对'}
dict2 = {'B':'13','C':'以上都不对','A':'12'}
print(dict1==dict2) # 输出是 True ,这说明字典是无序的
#字典的常用操作
#1、通过键来进行查询
dict3 = {'A':'1','B':'5','C':'23'}
print(dict3['A']) # 通过键来进行查询
#2、更新键值对
dict3['A'] = 'abc'
print(dict3['A'])
#3、新增键值对
dict3['D'] = '369' #更新和新增都是通过 对键进行赋值 来完成更新和新增的操作。
print(dict3)
#4、 in 通过键进行判断
print('1' in dict3) #输出False 因为in是通过键来判断,不是通过值
print('B' in dict3) #输出True
#5、删除 键值对
del dict3['A']
print(dict3)
#6、清空字典与重新赋值空字典
print(id(dict1))
dict3.clear()
print(id(dict1)) #删除字典中的键值对,地址不变
dict3 = {}
print(id(dict3)) #重新定义了一个字典,地址变化了
#7、获取字典中的所有键
dict3 = {'A':'1','B':'5','C':'23'}
print(dict3.keys()) # 获取字典中的所有键
print(dict3.values()) #获取字典中的所有值
print(dict3.items()) #获取字典中的键值对
for key in dict3.keys():
print(key) #通过遍历的方式去获取键
for value in dict3.values():
print(value) #通过遍历值的方式去获取值
for key,value in dict3.items():
print(key,value) #通过遍历的方式去获取键值对
#8、字典的合并
dict4 = {'A':'这个是dict4的A值','d':'5','e':'23'}
dict3.update(dict4)
print(dict3) #合并时字典会自动判断是新增还是修改。若键相同,值不同。则后面的键值对会自动替换掉前面的(也就是字典的更新操作)
#json和字典
#json是一种很像字典的字符串,是接口测试中常见的格式;json和字典可以相互转换;json.loads() 将json转为字典,json.dumps() 将字典转为json
str1 = '''{
"a001":"张三",
"a002":"15879657888",
"a003":"男",
"a004":"21"
}'''
#注册页面的请求,传了一个json,手机号唯一,要求修改一下手机号
import json
from random import randint
str1_new = json.loads(str1) #利用json.loads() 将json转为字典格式
str1_new['a002'] = f'138{randint(100000000,99999999999)}' #138拼接上一个随机数, f是格式化字符串
print(str1_new)
str1 = json.dumps(str1_new) #利用json.dumps() 将字典转为json格式
print(str1)
输出
True
1
abc
{'A': 'abc', 'B': '5', 'C': '23', 'D': '369'}
False
True
{'B': '5', 'C': '23', 'D': '369'}
26230672
26230672
27229088
dict_keys(['A', 'B', 'C'])
dict_values(['1', '5', '23'])
dict_items([('A', '1'), ('B', '5'), ('C', '23')])
A
B
C
1
5
23
A 1
B 5
C 23
{'A': '这个是dict4的A值', 'B': '5', 'C': '23', 'd': '5', 'e': '23'}
{'a001': '张三', 'a002': '1387695969725', 'a003': '男', 'a004': '21'}
{"a001": "\u5f20\u4e09", "a002": "1387695969725", "a003": "\u7537", "a004": "21"}