Does anyone know how to do convert from a string to a boolean in Python? I found this link. But it doesn't look like a proper way to do it. I.e. using a built in functionality, etc.
The reason I asked this is because I learned
int("string"), from here. I tried
bool("string") but always got
>>> bool("False") True
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 in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']
Be cautious when using the following:
>>> bool("foo") True >>> bool("") False
Empty strings evaluate to
False, but everything else evaluates to
True. So this should not be used for any kind of parsing purposes.
def str2bool(v): return v.lower() in ("yes", "true", "t", "1")
Then call it like so:
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.