从ast文档中,我可以得到以下信息:
安全地评估表达式节点或包含Python字面值或容器显示的Unicode或Latin-1编码字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串、数字、元组、列表、字典、布尔值和None。
从这个描述来看,ast.literal_eval(None)应该可以工作。
然而,在Python 2.7中,当我尝试做ast.literal_eval(None)时,会出现ValueError: malformed string错误。如果我使用ast.literal_eval('None')则不会出现此问题。
有人能解释一下为什么吗?我已经查看了关于ast.literal_eval和malformed string的其他StackOverflow问题,但没有一个问题解决了这个问题。