【python】eval 和 ast.literal_eval 的区别

eval

用来执行一个字符串表达式,并返回表达式的值。

input_ = eval(input('Provide some data here: '))
# 如果输入下面的字符串且被执行,非常危险
__import__('os').system('rm -rf /a-path-you-really-care-about')

ast.literal_eval

安全地评估表达式节点或包含 Python 文字或容器显示的字符串。提供的字符串或节点只能由以下 Python 文字结构组成:字符串、字节、数字、元组、列表、字典、集合、布尔值、无、字节和集合。

ref:

猜你喜欢

转载自blog.csdn.net/lan_yangbi/article/details/129163575