Printing dict value for possibly undefined key

duncan smith duncan at invalid.invalid
Fri Nov 24 11:54:53 EST 2023


On 24/11/2023 16:35, duncan smith wrote:
> On 24/11/2023 14:31, Loris Bennett wrote:
>> Hi,
>>
>> I want to print some records from a database table where one of the
>> fields contains a JSON string which is read into a dict.  I am doing
>> something like
>>
>>    print(f"{id} {d['foo']} {d['bar']}")
>>
>> However, the dict does not always have the same keys, so d['foo'] or
>> d['bar'] may be undefined.  I can obviously do something like
>>
>>    if not 'foo' in d:
>>      d['foo']="NULL"
>>    if not 'bar' in d:
>>      d['bar']="NULL"
>>    print(f"{id} {d['foo']} {d['bar']}")
>>
>> Is there any more compact way of achieving the same thing?
>>
>> Cheers,
>>
>> Loris
>>
> 
> Yes. e.g.
> 
> d.get('foo', "NULL")
> 
> Duncan

Or make d a defaultdict.

from collections import defaultdict

dic = defaultdict(lambda:'NULL')
dic['foo'] = 'astring'
dic['foo']
'astring'
dic['bar']
'NULL'

Duncan


More information about the Python-list mailing list