Python将'True'和'False'解析为字符串[重复]

Posted

技术标签:

【中文标题】Python将\'True\'和\'False\'解析为字符串[重复]【英文标题】:Python parsing 'True' and 'False' as strings [duplicate]Python将'True'和'False'解析为字符串[重复] 【发布时间】:2019-04-16 15:41:16 【问题描述】:

有没有办法在 python 中将字符串 'True' 解析为 True(布尔值)和 'False' 解析为 False(布尔值)?

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

【问题讨论】:

看看ast.literal_eval() 无法测试,因为我在手机上,你能用 eval() 吗? 看看@Austin 的回答。 为什么不直接使用string == 'True' 【参考方案1】:

在这种情况下,我不推荐ast.literal_evaleval。最好的办法大概是这样:

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

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

【讨论】:

【参考方案2】:

使用ast.literal_eval:

>>> import ast
>>> ast.literal_eval('False')
False

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

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

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

def parse(string):
    d = 'True': True, 'False': False
    return d.get(string, string)

现在,你叫:

>>> parse('True')
True
>>> parse('False')
False
>>> parse('Anything')
'Anything'

【讨论】:

以上是关于Python将'True'和'False'解析为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中,我应该如何测试一个变量是 None、True 还是 False

为啥 True/False 在 Python 中大写?

json与python解析

如何在 Python 中对包含 TRUE/FALSE 值的数据集执行聚类?

如何将数组中的真假字符串解析为布尔值

Python 2d 数组布尔减少