|
1介绍ast.literal_eval是Python标准库ast模块中的一个函数,用于安全地评估表示Python字面量或容器(如列表、字典、元组、集合)的字符串importast#解析并执行一个数字表达式num=ast.literal_eval("3.14")print(num)#3.14#解析并执行一个字符串表达式str_=ast.literal_eval('"Hello,world!"')print(str_)#Hello,world!#解析并执行一个元组表达式tuple_=ast.literal_eval("(1,2,3)")print(tuple_)#(1,2,3)#解析并执行一个列表表达式list_=ast.literal_eval("[1,2,3]")print(list_)#[1,2,3]#解析并执行一个字典表达式dict_=ast.literal_eval("{'name':'Alice','age':25}")print(dict_)#{'name':'Alice','age':25}#解析并执行一个集合表达式set_=ast.literal_eval("{'apple','banana','cherry'}")print(set_)#{'apple','banana','cherry'}'运行运行2和eval的区别/ast.literal_eval的禁忌ast.literal_eval仅能解析Python字面量和一些容器类型(如列表、字典、元组、集合等),这意味着它不能计算包含Python表达式或函数调用的字符串。这是一个设计上的限制,以确保安全性,防止执行潜在危险的代码。无法执行的【这些eval都可以】:数学表达式函数调用条件表达式
|
|