【问题标题】: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'

标签: python parsing boolean


【解决方案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'
    

    【讨论】:

      猜你喜欢
      • 2019-03-24
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      相关资源
      最近更新 更多