Today I Learned
Python If on Numbers
A bug that is so easy to miss.
my_data = {'score': 5 }
restult = int(my_data.get('score')) if my_data.get('score') else None
Naively, I would think this will deal with it correctly even with a missing key.
However, if 'score'
ever becomes 0, this will fail since my_data.get('score')
returns 0 and 0 is calculated as false in this case. Then the results goes to None which is not what we want.
my_data = {'score': 0 }
restult = int(my_data.get('score')) if my_data.get('score') else None
# result is actually None, but we might require it to be 0