为什么ast.literal_eval('1 + 1')在python2.7中是错误的

时间:2017-12-21 03:16:21

标签: python eval abstract-syntax-tree literals

当我在python2.7中执行代码$categories = Category::with('service.branches')->get(); 时,结果如下: enter image description here 我在python3.6中尝试它,它正常工作。那是什么原因?

1 个答案:

答案 0 :(得分:3)

2.73.6文档都说明如下:

  

这可以用于安全地评估包含来自不受信任来源的Python值的字符串,而无需自己解析值。它无法评估任意复杂的表达式,例如涉及运算符或索引。

添加是一个操作员,因此记录不起作用。它在Python 3.6中工作的事实对我来说是令人惊讶的。搜索错误跟踪器时,此错误列为Python错误#31778