ast.literal_eval(无)与ast.literal_eval('无')

时间:2017-03-14 18:50:08

标签: python-2.7

从ast docs我可以得到以下信息:

安全地评估表达式节点或包含Python文字或容器显示的Unicode或Latin-1编码字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。

从这看起来似乎ast.literal_eval(无)应该有效。

然而在python 2.7中,当我尝试执行ast.literal_eval(无)时,我得到ValueError:格式错误的字符串。 如果我执行ast.literal_eval('None'),就不会发生这种情况。

任何人都可以解释原因吗?我已经在StackOverflow上查看了关于ast.literaleval和格式错误的字符串的其他问题,但没有一个解决这个问题。

1 个答案:

答案 0 :(得分:0)

None既不是字符串也不是expression node,因此没有理由相信它是ast.literal_eval()的有效参数。