Converting from a string to boolean in Python?

Converting from a string to boolean in Python?

Really, you just compare the string to whatever you expect to accept as representing true, so you can do this:

s == True

Or to checks against a whole bunch of values:

s.lower() in [true, 1, t, y, yes, yeah, yup, certainly, uh-huh]

Be cautious when using the following:

>>> bool(foo)
>>> bool()

Empty strings evaluate to False, but everything else evaluates to True. So this should not be used for any kind of parsing purposes.



True values are y, yes, t, true, on and 1; false values are n, no, f, false, off and 0. Raises ValueError if val is anything else.

Be aware that distutils.util.strtobool() returns integer representations and thus it needs to be wrapped with bool() to get Boolean values.

Converting from a string to boolean in Python?

def str2bool(v):
  return v.lower() in (yes, true, t, 1)

Then call it like so:

>>> str2bool(yes)
>>> str2bool(no)
>>> str2bool(stuff)
>>> str2bool(1)
>>> str2bool(0)

Handling true and false explicitly:

You could also make your function explicitly check against a True list of words and a False list of words. Then if it is in neither list, you could throw an exception.

Leave a Reply

Your email address will not be published. Required fields are marked *