A part of my code didn’t work well, as below:
if mapping and mapping['colour'] is 'Red': print('Special colour')
It will not print out anything totally. So I directly printed out the actually value of mapping[‘colour’]:
print(mapping['colour']) # It showed 'Red' in console
Why ‘Red’ is not ‘Red’? After changed the judgement from ‘is’ to ‘==’, the result became correct.
The key is that UNICODE string and normal string is different in Python:
u'Red' is 'Red' # False u'Red' == 'Red' # True
Seems we should use ‘==’ to compare two strings instead of ‘is’.