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_eval
或eval
。最好的办法大概是这样:
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