ast.literal_eval 是 Python 标准库 ast 模块中的一个函数,用于安全地评估表示 Python 字面量或容器(如列表、字典、元组、集合)的字符串
- import ast
-
- # 解析并执行一个数字表达式
- 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'}
ast.literal_eval 仅能解析 Python 字面量和一些容器类型(如列表、字典、元组、集合等),这意味着它不能计算包含 Python 表达式或函数调用的字符串。无法执行的【这些eval都可以】:


