Reading From Python Dict If Key Might Not Be Present
Solution 1:
The preferred way, when applicable:
for r in results:
print r.get('key_name')
this will simply print None
if key_name
is not a key in the dictionary. You can also have a different default value, just pass it as the second argument:
for r in results:
print r.get('key_name', 'Missing: key_name')
If you want to do something different than using a default value (say, skip the printing completely when the key is absent), then you need a bit more structure, i.e., either:
for r in results:
if'key_name'in r:
print r['key_name']
or
for r in results:
try: print r['key_name']
except KeyError: pass
the second one can be faster (if it's reasonably rare than a key is missing), but the first one appears to be more natural for many people.
Solution 2:
There are two straightforward ways of reading from Python dict if key might not be present. for example:
dicty = {'A': 'hello', 'B': 'world'}
- The pythonic way to access a key-value pair is:
value = dicty.get('C', 'default value')
- The non-pythonic way:
value = dicty['C'] if dicty['C'] else 'default value'
- even worse:
try:
value = dicty['C']
except KeyError as ke:
value = 'default value'
Solution 3:
If possible, use the simplejson library for managing JSON data.
Solution 4:
the initial question in this thread is why I wrote the Dictor library, it handles JSON fallback and None values gracefully without needing try/except or If blocks.
Also gives you additional options like ignore upper/lower case,
see,
Solution 5:
use has_key() , and that will return true or false
Post a Comment for "Reading From Python Dict If Key Might Not Be Present"