python literal_eval
函數(shù)是Python的內(nèi)置函數(shù)eval
的一個(gè)變體,用于安全地評(píng)估并執(zhí)行一個(gè)Python表達(dá)式。
literal_eval
函數(shù)可以評(píng)估一個(gè)包含字面值的字符串,并返回其對(duì)應(yīng)的Python對(duì)象。字面值可以是數(shù)字、字符串、列表、字典、元組和布爾值。
函數(shù)原型:ast.literal_eval(node_or_string)
literal_eval
函數(shù)接受一個(gè)參數(shù)node_or_string
,可以是一個(gè)包含字面值的字符串,也可以是AST(抽象語(yǔ)法樹(shù))節(jié)點(diǎn)。函數(shù)返回一個(gè)Python對(duì)象。
literal_eval
函數(shù)的主要特點(diǎn)是安全性。與eval
函數(shù)不同,literal_eval
函數(shù)只能評(píng)估包含字面值的表達(dá)式,并且不會(huì)執(zhí)行任何危險(xiǎn)的操作。這可以防止惡意代碼執(zhí)行。
以下是literal_eval
函數(shù)的一些示例:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-817786.html
import ast
# 字符串
s = "'Hello, world!'"
result = ast.literal_eval(s)
print(result) # 輸出:Hello, world!
# 列表
s = "[1, 2, 3]"
result = ast.literal_eval(s)
print(result) # 輸出:[1, 2, 3]
# 字典
s = "{'name': 'Alice', 'age': 25}"
result = ast.literal_eval(s)
print(result) # 輸出:{'name': 'Alice', 'age': 25}
# 布爾值
s = "True"
result = ast.literal_eval(s)
print(result) # 輸出:True
需要注意的是,literal_eval
函數(shù)不能評(píng)估包含變量或函數(shù)調(diào)用的表達(dá)式。如果要評(píng)估這樣的表達(dá)式,仍然需要使用eval
函數(shù)。但是需要謹(jǐn)慎使用eval
函數(shù),以免執(zhí)行惡意代碼。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-817786.html
到了這里,關(guān)于python literal_eval()函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!