日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2025/3/15 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】字典dict类型转换为列表list类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們有時(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ù)類型

def deal_dict():class_json = json.dumps(class_dict)print("class_json為str類型:", type(class_json), class_json)print("class_dict為字典類型:", type(class_dict))# 1.遍歷字典key值,value值:一般為字符串,如果字典為復(fù)雜情況,比如上面class_dict,第二個(gè)key的value為復(fù)雜情況# 這個(gè)時(shí)候會(huì)出現(xiàn)字符串,列表等類型for key in class_dict:print("遍歷字典key+value值1:", key, class_dict[key])print("這里的鍵值為多種數(shù)據(jù)類型1::", type(class_dict[key]))for key in class_dict.keys():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_dict.items():print("遍歷字典key+value值4:", key, value)print("這里的鍵值為多種數(shù)據(jù)類型2:", type(value))for (key, value) in class_dict.items():print("遍歷字典key+value值5:", key, value)print("這里的鍵值為多種數(shù)據(jù)類型3:", type(value))print(class_dict.items())print("class_dict.items()為字典_列表類型:", type(class_dict.items()))if __name__ == '__main__':deal_dict()

三、遍歷字典項(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

def dict_to_list2():class_list = [] #1.創(chuàng)建一個(gè)空的二維列表for item in class_dict.items(): #2.獲取字典類型數(shù)據(jù)的字典項(xiàng)(dict-->tuple)a = item[1] #3.獲取元組的數(shù)據(jù)集合(tuple-->str,list)print("item[1]的數(shù)據(jù)類型:", type(a), a) #4.查看元組的數(shù)據(jù)的類型for list in a: #5.分別獲取元組的數(shù)據(jù)(str-->str,list-->dict)rows=[]for info in list:if info == 'courseName'or info == 'audioname' or info == 'pdfFileId' or info == 'learnStatus':rows.append(list[info]) #6.獲取字典類型數(shù)據(jù)的value存入到一維列表(dict-->str-->list)if rows: # 如果列表不為空class_list.append(rows) # 二維列表存入數(shù)據(jù)return(class_list)if __name__ == '__main__':#deal_dict()#print(dict_to_list())print(dict_to_list2())

到這里算是得到了我們想要的數(shù)據(jù),但是如果要存入到Excel文件,那還需要處理,下篇文章將介紹一下如何對(duì)Excel操作。

總結(jié)

以上是生活随笔為你收集整理的【Python】字典dict类型转换为列表list类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。