1 eval
1.1 字符串型數據還原本身類型
python中,eval可以將字符串型的list,tuple,dict轉變成原有的類型。
即,eval可以把數據還原成它本身或者是能夠轉化成的數據類型。
//string 轉 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 轉 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 轉 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 字符串型數據進行運算
>>> ret=eval(raw_input('請輸入字符串:'))
請輸入字符串:1+1
>>> ret
2
1.3 字符串型語句命令
只要eval能解析的字符串,都會當做合法的表達式或命令執行,而不顧可能帶來的后果。
>>> open(r'E://filename.txt','r').read
>>> __import__('os').system('dir')
>>> __import__('os').system('rm -rf /etc/*')
eval強大的背后,是巨大的安全隱患。比如上面的刪除文件。
所以,才有了ast.literal_eval。
2 literal_eval
ast.literal_eval(),先判斷執行的內容是不是合適的python類型,如果是則執行,否則就不執行。
這樣可以大大降低系統的危險性,所以,對字符串進行類型轉換的時候,最好是用ast.literal_eval()函數。
2.1 合適數據類型
# 合適數據類型
>>> 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 不合適數據類型
# 不合適數據類型
>>> ast.literal_eval('1+1')
Traceback (most recent call last):
File "
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
6888瀏覽量
88825 -
python
+關注
關注
56文章
4782瀏覽量
84449 -
EVAL
+關注
關注
0文章
34瀏覽量
8511
發布評論請先 登錄
相關推薦
請問EVAL-ADISZ和EVAL-ADIS2有哪些區別?
尊敬的工程師你好,我現在想評估16735和16488A的性能并驗證我的算法,請問EVAL-ADISZ和EVAL-ADIS2的區別除了后者需要單獨分線板外,還有哪些區別,例如在傳輸速度、
發表于 08-08 09:39
AST3TQ評估板旨在促進AST3TQ系列TCXO和VCTCXO的電氣性能測試
AST3TQ-EVAL,AST3TQ評估板旨在促進AST3TQ系列TCXO和VCTCXO的電氣性能測試。客戶只需在所提供的焊盤圖形上焊接AST3TQ器件,并將+ 3.3V連接到標記為V
發表于 07-17 08:57
ASMT-JR30-AST01 3W迷你大功率LED
電子發燒友網為你提供Broadcom(ti)ASMT-JR30-AST01相關產品參數、數據手冊,更有ASMT-JR30-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-JR30-AST01真值表,ASMT-
發表于 07-04 11:24
ASMT-AR30-AST00 3W大功率LED
電子發燒友網為你提供Broadcom(ti)ASMT-AR30-AST00相關產品參數、數據手冊,更有ASMT-AR30-AST00的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR30-AST00真值表,ASMT-
發表于 07-04 11:20
ASMT-AR00-AST00 1W大功率LED
電子發燒友網為你提供Broadcom(ti)ASMT-AR00-AST00相關產品參數、數據手冊,更有ASMT-AR00-AST00的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR00-AST00真值表,ASMT-
發表于 07-04 10:35
ASMT-AR00-AST01 1W大功率LED
電子發燒友網為你提供Broadcom(ti)ASMT-AR00-AST01相關產品參數、數據手冊,更有ASMT-AR00-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-AR00-AST01真值表,ASMT-
發表于 07-04 10:35
ASMT-JR10-AST01 1W迷你大功率LED
電子發燒友網為你提供Broadcom(ti)ASMT-JR10-AST01相關產品參數、數據手冊,更有ASMT-JR10-AST01的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-JR10-AST01真值表,ASMT-
發表于 07-04 10:32
基于AST3TQ-EVAL晶體振蕩器的參考設計
View the reference design for AST3TQ-EVAL. http://www.nxhydt.com/soft/ has thousands of reference designs to help bring your project to life.
發表于 07-01 17:52
?12次下載
評論