【Python】字典dict类型转换为列表list类型

【Python】字典dict类型转换为列表list类型

2023年7月26日发(作者:)

【Python】字典dict类型转换为列表list类型我们有时候⽤chrome浏览器获取Network中XHR的数据,得到的是Json类型,有时也可能是python中的字典类型,如果获取的数据⽐较复杂,通过简单的处理我们是⽆法拿到我们需要的数据的,这时我们就需要对数据进⾏转换处理,主要涉及到4中数据类型:str字符串,list列表,dict字典,tuple元组,或者混合类型。请参考以下案例,假设我们获取的数据是这样的(已简单处理):class_dict = {"total":"5","rows": [ {"courseName":"课程1","audioname":"4","pdfFileId":"","learnStatus":"未开始","student":"我"}, {"courseName":"课程2","audioname":"4","pdfFileId":"","learnStatus":"null","student":"我"}, {"courseName":"课程3","audioname":"4","pdfFileId":"","learnStatus":"已开始","student":"我"}, {"courseName":"课程4","audioname":"4","pdfFileId":"","learnStatus":"未开始","student":"我"}, {"courseName":"课程5","audioname":"4","pdfFileId":"","learnStatus":"已开始","student":"我"} ]}我现在想要获取到courseName,audioname,pdfFileId,learnStatus的值,并存⼊到EXCEL中的4列。我们的思路是,先将这个原始数据转换成⼀个⼆维列表[['课程1', '4', '', '未开始'], ['课程2', '4', '', 'null'],...]然后将⼆维列表的值循环存⼊到EXCEL⽂件中。解决这个问题前,我们先介绍⼀下字典的⼀些基础知识:⼀、字典类型与json类型的区别 dict 字符串可以⽤单引号或者双引号,json强制规定双引号。 {“me”: “我”} 是合法的,json必须是 {“me”: “u6211”}

3.字典类型与json可以相互转换,字典转换为json:dict_json = (dict), json转换为字典类型:json_dict = (json)

⼆、遍历字典的键值,得到各种数据类型def deal_dict(): class_json = (class_dict) print("class_json为str类型:", type(class_json), class_json) print("class_dict为字典类型:", type(class_dict)) # 1.遍历字典key值,value值:⼀般为字符串,如果字典为复杂情况,⽐如上⾯class_dict,第⼆个key的value为复杂情况 # 这个时候会出现字符串,列表等类型 for key in class_dict: print("遍历字典key+value值1:", key, class_dict[key]) print("这⾥的键值为多种数据类型1::", type(class_dict[key])) for key in class_(): print("遍历字典key+value值2:", key, class_dict[key]) for value in class_dict: print("遍历字典key+value值3:", value, class_dict[value]) for key, value in class_(): print("遍历字典key+value值4:", key, value) print("这⾥的键值为多种数据类型2:", type(value)) for (key, value) in class_(): print("遍历字典key+value值5:", key, value) print("这⾥的键值为多种数据类型3:", type(value)) print(class_()) print("class_()为字典_列表类型:", type(class_()))if __name__ == '__main__': deal_dict()三、遍历字典项,得到的是元组类型 # 2.遍历字典项,得到的是元组类型 for item in class_(): print("遍历字典项:", item) print("这⾥的item为元组类型:", type(item))四、创建⼀个函数得到⼆维列表:def dict_to_list(): class_list = [] #1.创建⼀个空的⼆维列表 for key, value in class_(): print("value的数据类型:",type(value),value) #2.获取字典类型数据的value(dict-->str,list) for item1 in value: if isinstance(value, (list)): #3.过滤value中⾮列表类型的数据(str,list-->list) print("数据类型为字典:", type(item1), item1) #4.获取列表中的字典数据(list-->dict) rows = [] #5.创建⼀个空的列表存放数据 for info in item1: if info == 'courseName'or info == 'audioname' or info == 'pdfFileId' or info == 'learnStatus': (item1[info]) #6.获取字典类型数据的value存⼊到⼀维列表(dict-->str-->list) if rows: # 如果列表不为空 class_(rows) # ⼆维列表存⼊数据 return class_listif __name__ == '__main__': #deal_dict() print(dict_to_list())这个⽅法的思路是遍历字典的键值然后再处理数据:dict-->list-->dict-->str-->list还有⼀种⽅法是遍历字典项⽣成元组,再处理数据:dict-->tuple-->list-->dict-->str-->listdef dict_to_list2(): class_list = [] #1.创建⼀个空的⼆维列表 for item in class_(): #2.获取字典类型数据的字典项(dict-->tuple) a = item[1] #3.获取元组的数据集合(tuple-->str,list) print("item[1]的数据类型:", type(a), a) #4.查看元组的数据的类型 for list in a: #5.分别获取元组的数据(str-->str,list-->dict) rows=[] for info in list: if info == 'courseName'or info == 'audioname' or info == 'pdfFileId' or info == 'learnStatus': (list[info]) #6.获取字典类型数据的value存⼊到⼀维列表(dict-->str-->list) if rows: # 如果列表不为空 class_(rows) # ⼆维列表存⼊数据 return(class_list)if __name__ == '__main__': #deal_dict() #print(dict_to_list()) print(dict_to_list2())到这⾥算是得到了我们想要的数据,但是如果要存⼊到Excel⽂件,那还需要处理,下篇⽂章将介绍⼀下如何对Excel操作。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690306736a329763.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信