Python编码与解码
编码:就是把str的数据类型转为bytes的数据类型的过程,使用到的关键字是encode
解码: 把bytes的数据类型转为str的数据类型的过程,使用到的关键字是decode
使用场景:编码和解码这部分的知识体系主要应用于API的自动化测试和获取到的数据,我们对这部分的数据进行处理的过程。
1)字符串
str1 = 'nameagesexwok'
字符串的拆分:
list_str1 = str1.split(' ')
print('字符串被拆分后的信息:{0},拆分后的数据类型:{1}'.format(list_str1,type(list_str1)))
输出结果:
字符串被拆分后的信息:['nameagesexwok'],拆分后的数据类型:<class 'list'>
#字符串的替换
replace_str=str1.replace('n','x')
print('字符串被替换后的内容:',replace_str)
#取消字符串的空隔
str2="this is a test "
print('取消字符串的空隔:',str2.strip())
#把list的数据类型转为str的数据类型
list1=["Python","Java","Go","PHP","C++"]
print('list的类型转为str的类型:', ','.join(list1))#转成以逗号隔开的字符串对象
#获取字符串的索引值内容
str3="请问我仍然要投入与体育"
print('获取"我"的索引值:',str3.index("我"))
2)列表
list1 = ['a', 'b']
list2 = ['c', 'd']
'''
append:添加的列表是在列表的最后一位
insert:根据自己的需求insert到列表的索引位置
'''
list1.append("Python")
print(list1)
list1.insert(0,'PHP')
print(list1)
#sort:列表的排序
list1.sort()
列表与字符串的相互转换:
字符串拆分后变成列表类型,所以字符串转成列表可以用拆分的方法
列表转成字符串类型:' , '.join(list1) 可以用 逗号/空格 隔开也可以用其他形式
3)元组
# 元组中只有一个元素的时候后边一定要加","不加的话,就不再是tuple的数据类型,而是字符串的数据类型
tuple1=('Python',)
tuple的对象是不可以变化,但是里面对象的值可以改变
tuple1=('Python','Go','Java',['Selenium','Appium'])
#修改tuple第四个对象的值,可以修改成功
tuple1[3][0]='WebDriver'
print('修改tuple对象的值:',tuple1)
#尝试修改tuple里面的值
tuple1[0]='python' #这里修改第一个元素是会报错的
列表与元组的区别
列表的元素可以修改,元组不可以,元组里的对象是可变的,比如元组里有一个列表对象,修改元组对象
4)字典
dict1={'name':'wu','age':18,'address':'xian','work':'test'}
#字典的循环输出,输出结果是以元组的形式显示的
for item in dict1.items():
print(item)
结果:
('name', 'wu')
('age', 18)
('address', 'xian')
('work', 'test')
字典的排序:
#按照key来对字典进行排序,这里的lambda 是匿名函数,item[0]是选择的key
key_dict1=sorted(dict1.items(),key=lambda item:item[0])
print('依据key对象对字典排序后的结果信息:\n',key_dict1)
5列表与字典互转:
'''列表与字典的互转'''
list1=['Python','Go','Java','C']
#把列表转为字典,enumerate函数是把列表的对象的索引以对象的形式显示
dict_list=dict(enumerate(list1))
print('列表转为字典:{0},数据类型:{1}'.format(dict_list,type(dict_list)))
#把字典转为列表,dict_list.items()字典循环
list_dict=list(dict_list.items())
print('字典转为列表:{0},数据类型:{1}'.format(list_dict,type(list_dict)))
5)集合
list1=['Python','Allure','Pytest']
list2=['Java','TestNG','Allure']
print('获取两个对象里面的共同值:',set(list1)&set(list2))
print('获取两个对象里面的差集:',set(list1)|set(list2))
print('获取两个集合对象里面的包含关系:',set(list1)^set(list2))
输出的结果:
获取两个对象里面的共同值: {'Allure'}
获取两个对象里面的差集: {'Allure', 'Pytest', 'Java', 'Python', 'TestNG'}
获取两个集合对象里面的包含关系: {'Python', 'Pytest', 'Java', 'TestNG'}
字典中复杂数据的解析和精确子段的获取:
params = {
'status': 0,
'msg': 'ok',
'datas': [
{
'name': 'wu',
'age': 18,
'address': 'xian',
'company': ['google', 'microsoft', {'salary': 10000}]
}
]}
# 获取params 中的'salary'的值
list1 = params['datas'] # 获取字典里的datas的全部数据
a = list1[0]['company'] # datas是列表用索引值list1[0],获取到company的数据
sal = a[2]['salary'] #
# print(list1)
# print(a)
print(sal)