Python?eval()函數(shù)和ast.literal_eval()的區(qū)別你知道嗎
eval()函數(shù)可以將字符串型的list、tuple、dict等等轉(zhuǎn)換為原有的數(shù)據(jù)類型

即使用eval可以實(shí)現(xiàn)從元組,列表,字典型的字符串到元組,列表,字典的轉(zhuǎn)化,此外,eval還可以對(duì)字符串型的輸入直接計(jì)算

從上面來看,eval功能可謂是非常強(qiáng)大,即可以做string與list、tuple、dict之間的類型轉(zhuǎn)換,還可以做計(jì)算器使用,但是eval強(qiáng)大的背后有著巨大的安全隱患,比如,用戶惡意輸入下面的字符串,是十分危險(xiǎn)的

所以這里因?yàn)榘踩幚矸绞?ast.literal_eval(), 該函數(shù)會(huì)判斷需要計(jì)算的內(nèi)容計(jì)算后是不是合法的python類型,如果是則進(jìn)行運(yùn)算,否則就不進(jìn)行運(yùn)算比如上面的計(jì)算操作和危險(xiǎn)操作,使用ast.literal_eval()都會(huì)拒絕執(zhí)行,報(bào)錯(cuò)


ast.literal_eval()只會(huì)執(zhí)行合法的Python類型,從而大大降低系統(tǒng)的風(fēng)險(xiǎn)性

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python簡單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)過程
很多網(wǎng)站登錄都需要輸入驗(yàn)證碼,如果要實(shí)現(xiàn)自動(dòng)登錄就不可避免的要識(shí)別驗(yàn)證碼,這篇文章主要給大家介紹了關(guān)于python簡單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)過程,需要的朋友可以參考下2021-06-06
關(guān)于Python中對(duì)變量賦值過程的理解
在Python中對(duì)變量賦值過程的理解,有助于學(xué)習(xí)者對(duì)Python的變量和所指向的對(duì)象之間的指向關(guān)系深刻理解,避免編程中多個(gè)變量賦值后,對(duì)變量結(jié)果的不確定,,需要的朋友可以參考下2023-05-05
caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解
今天小編就為大家分享一篇caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
pandas分組排序 如何獲取第二大的數(shù)據(jù)
這篇文章主要介紹了pandas分組排序 獲取第二大的數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03

