1 eval
1.1 字符串型數(shù)據(jù)還原本身類型
python中,eval可以將字符串型的list,tuple,dict轉(zhuǎn)變成原有的類型。
即,eval可以把數(shù)據(jù)還原成它本身或者是能夠轉(zhuǎn)化成的數(shù)據(jù)類型。
//string 轉(zhuǎn) list
>>> str_list='[1,2,3,4]'
>>> eva_list=eval(str_list)
>>> str_list;eva_list
'[1,2,3,4]'
[1, 2, 3, 4]
>>> type(str_list);type(eva_list)
<type 'str'>
<type 'list'>
//string 轉(zhuǎn) tuple
>>> str_tuple='(1,2,3)'
>>> eval_tuple=eval(str_tuple)
>>> str_tuple;eval_tuple
'(1,2,3)'
(1, 2, 3)
>>> type(str_tuple);type(eval_tuple)
<type 'str'>
<type 'tuple'>
//string 轉(zhuǎn) dict
>>> str_dict="{'name':'nihao'}"
>>> eval_dict=eval(str_dict)
>>> str_dict;eval_dict
"{'name':'nihao'}"
{'name': 'nihao'}
>>> type(str_dict);type(eval_dict)
<type 'str'>
<type 'dict'>
1.2 字符串型數(shù)據(jù)進(jìn)行運(yùn)算
>>> ret=eval(raw_input('請輸入字符串:'))
請輸入字符串:1+1
>>> ret
2
1.3 字符串型語句命令
只要eval能解析的字符串,都會當(dāng)做合法的表達(dá)式或命令執(zhí)行,而不顧可能帶來的后果。
>>> open(r'E://filename.txt','r').read
>>> __import__('os').system('dir')
>>> __import__('os').system('rm -rf /etc/*')
eval強(qiáng)大的背后,是巨大的安全隱患。比如上面的刪除文件。
所以,才有了ast.literal_eval。
2 literal_eval
ast.literal_eval(),先判斷執(zhí)行的內(nèi)容是不是合適的python類型,如果是則執(zhí)行,否則就不執(zhí)行。
這樣可以大大降低系統(tǒng)的危險性,所以,對字符串進(jìn)行類型轉(zhuǎn)換的時候,最好是用ast.literal_eval()函數(shù)。
2.1 合適數(shù)據(jù)類型
# 合適數(shù)據(jù)類型
>>> ast.literal_eval('[1,2,3]')
[1, 2, 3]
>>> ast.literal_eval('(1,2,3)')
(1, 2, 3)
>>> ast.literal_eval("{'name':'nihao'}")
{'name': 'nihao'}
2.2 不合適數(shù)據(jù)類型
# 不合適數(shù)據(jù)類型
>>> ast.literal_eval('1+1')
Traceback (most recent call last):
File "
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7322瀏覽量
94282 -
python
+關(guān)注
關(guān)注
57文章
4866瀏覽量
89799 -
EVAL
+關(guān)注
關(guān)注
0文章
34瀏覽量
9071
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
請問EVAL-ADISZ和EVAL-ADIS2有哪些區(qū)別?
尊敬的工程師你好,我現(xiàn)在想評估16735和16488A的性能并驗(yàn)證我的算法,請問EVAL-ADISZ和EVAL-ADIS2的區(qū)別除了后者需要單獨(dú)分線板外,還有哪些區(qū)別,例如在傳輸速度、
發(fā)表于 08-08 09:39
AST3TQ評估板旨在促進(jìn)AST3TQ系列TCXO和VCTCXO的電氣性能測試
AST3TQ-EVAL,AST3TQ評估板旨在促進(jìn)AST3TQ系列TCXO和VCTCXO的電氣性能測試??蛻糁恍柙谒峁┑暮副P圖形上焊接AST3TQ器件,并將+ 3.3V連接到標(biāo)記為V
發(fā)表于 07-17 08:57
ASMT-JR30-AST01 3W迷你大功率LED
電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-JR30-AST01相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-JR30-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-JR30-AST01真值表,ASMT-
發(fā)表于 07-04 11:24
ASMT-AR30-AST00 3W大功率LED
電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-AR30-AST00相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-AR30-AST00的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR30-AST00真值表,ASMT-
發(fā)表于 07-04 11:20
ASMT-AR00-AST00 1W大功率LED
電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-AR00-AST00相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-AR00-AST00的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR00-AST00真值表,ASMT-
發(fā)表于 07-04 10:35
ASMT-AR00-AST01 1W大功率LED
電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-AR00-AST01相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-AR00-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR00-AST01真值表,ASMT-
發(fā)表于 07-04 10:35
ASMT-JR10-AST01 1W迷你大功率LED
電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-JR10-AST01相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-JR10-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-JR10-AST01真值表,ASMT-
發(fā)表于 07-04 10:32
基于AST3TQ-EVAL晶體振蕩器的參考設(shè)計(jì)
View the reference design for AST3TQ-EVAL. http://www.brongaenegriffin.com/soft/ has thousands of reference designs to help bring your project to life.
發(fā)表于 07-01 17:52
?12次下載
eval和ast.literal_eavl區(qū)別
評論