Python将’True’和’False’解析为字符串

Python parsing 'True' and 'False' as strings

本问题已经有最佳答案,请猛点这里访问。

在python中,是否有方法将字符串'True'解析为EDOCX1(布尔值),'False'解析为EDOCX1(布尔值)?

我知道我可以做bool('True')bool('False'),但每个都是True


使用ast.literal_eval

1
2
3
>>> import ast
>>> ast.literal_eval('False')
False

如果你做type(ast.literal_eval('False')),你会看到

1
2
>>> type(ast.literal_eval('False'))
<class 'bool'>

您还可以编写自己的函数,返回'True'作为布尔True'False'作为布尔False,如果您提供任何其他输入,则返回相同的返回:

1
2
3
def parse(string):
    d = {'True': True, 'False': False}
    return d.get(string, string)

现在,您的电话是:

1
2
3
4
5
6
>>> parse('True')
True
>>> parse('False')
False
>>> parse('Anything')
'Anything'


在这种情况下,我不建议使用ast.literal_evaleval。最好的办法可能是:

1
2
def parse_boolean(b):
    return b =="True"

"True"返回True"False"返回False