【Python】字典dict类型转换为列表list类型
我們有時(shí)候用chrome瀏覽器獲取Network中XHR的數(shù)據(jù),得到的是Json類型,有時(shí)也可能是python中的字典類型,如果獲取的數(shù)據(jù)比較復(fù)雜,通過簡單的處理我們是無法拿到我們需要的數(shù)據(jù)的,這時(shí)我們就需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換處理,主要涉及到4中數(shù)據(jù)類型:str字符串,list列表,dict字典,tuple元組,或者混合類型。請(qǐng)參考以下案例,假設(shè)我們獲取的數(shù)據(jù)是這樣的(已簡單處理):
class_dict = { "total":"5", "rows":[{"courseName":"課程1","audioname":"1.mp4","pdfFileId":"1.pdf","learnStatus":"未開始","student":"我"},{"courseName":"課程2","audioname":"2.mp4","pdfFileId":"2.pdf","learnStatus":"null","student":"我"},{"courseName":"課程3","audioname":"3.mp4","pdfFileId":"3.pdf","learnStatus":"已開始","student":"我"},{"courseName":"課程4","audioname":"4.mp4","pdfFileId":"4.pdf","learnStatus":"未開始","student":"我"},{"courseName":"課程5","audioname":"5.mp4","pdfFileId":"5.pdf","learnStatus":"已開始","student":"我"}] }我現(xiàn)在想要獲取到courseName,audioname,pdfFileId,learnStatus的值,并存入到EXCEL中的4列。
我們的思路是,先將這個(gè)原始數(shù)據(jù)轉(zhuǎn)換成一個(gè)二維列表[['課程1', '1.mp4', '1.pdf', '未開始'], ['課程2', '2.mp4', '2.pdf', 'null'],...]
然后將二維列表的值循環(huán)存入到EXCEL文件中。
解決這個(gè)問題前,我們先介紹一下字典的一些基礎(chǔ)知識(shí):
一、字典類型與json類型的區(qū)別
1.python dict 字符串可以用單引號(hào)或者雙引號(hào),json強(qiáng)制規(guī)定雙引號(hào)。
2.python {“me”: “我”} 是合法的,json必須是 {“me”: “\u6211”}?
3.字典類型與json可以相互轉(zhuǎn)換,字典轉(zhuǎn)換為json:dict_json = json.dumps(dict),
? json轉(zhuǎn)換為字典類型:json_dict = json.loads(json)
??
二、遍歷字典的鍵值,得到各種數(shù)據(jù)類型
三、遍歷字典項(xiàng),得到的是元組類型
# 2.遍歷字典項(xiàng),得到的是元組類型for item in class_dict.items():print("遍歷字典項(xiàng):", item)print("這里的item為元組類型:", type(item))四、創(chuàng)建一個(gè)函數(shù)得到二維列表:
def dict_to_list():class_list = [] #1.創(chuàng)建一個(gè)空的二維列表for key, value in class_dict.items():print("value的數(shù)據(jù)類型:",type(value),value) #2.獲取字典類型數(shù)據(jù)的value(dict-->str,list)for item1 in value:if isinstance(value, (list)): #3.過濾value中非列表類型的數(shù)據(jù)(str,list-->list)print("數(shù)據(jù)類型為字典:", type(item1), item1) #4.獲取列表中的字典數(shù)據(jù)(list-->dict)rows = [] #5.創(chuàng)建一個(gè)空的列表存放數(shù)據(jù)for info in item1:if info == 'courseName'or info == 'audioname' or info == 'pdfFileId' or info == 'learnStatus':rows.append(item1[info]) #6.獲取字典類型數(shù)據(jù)的value存入到一維列表(dict-->str-->list)if rows: # 如果列表不為空class_list.append(rows) # 二維列表存入數(shù)據(jù)return class_listif __name__ == '__main__':#deal_dict()print(dict_to_list())這個(gè)方法的思路是遍歷字典的鍵值然后再處理數(shù)據(jù):dict-->list-->dict-->str-->list
還有一種方法是遍歷字典項(xiàng)生成元組,再處理數(shù)據(jù):dict-->tuple-->list-->dict-->str-->list
到這里算是得到了我們想要的數(shù)據(jù),但是如果要存入到Excel文件,那還需要處理,下篇文章將介紹一下如何對(duì)Excel操作。
總結(jié)
以上是生活随笔為你收集整理的【Python】字典dict类型转换为列表list类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】Python中内置的%操
- 下一篇: websocket python爬虫_p