python literal_eval()函数

发布时间:2024年01月23日

python literal_eval函数是Python的内置函数eval的一个变体,用于安全地评估并执行一个Python表达式。

literal_eval函数可以评估一个包含字面值的字符串,并返回其对应的Python对象。字面值可以是数字、字符串、列表、字典、元组和布尔值。

函数原型:ast.literal_eval(node_or_string)

literal_eval函数接受一个参数node_or_string,可以是一个包含字面值的字符串,也可以是AST(抽象语法树)节点。函数返回一个Python对象。

literal_eval函数的主要特点是安全性。与eval函数不同,literal_eval函数只能评估包含字面值的表达式,并且不会执行任何危险的操作。这可以防止恶意代码执行。

以下是literal_eval函数的一些示例:

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函数不能评估包含变量或函数调用的表达式。如果要评估这样的表达式,仍然需要使用eval函数。但是需要谨慎使用eval函数,以免执行恶意代码。

文章来源:https://blog.csdn.net/leshen_88/article/details/135697400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。