Printing dict value for possibly undefined key

Loris Bennett loris.bennett at fu-berlin.de
Tue Nov 28 09:06:11 EST 2023


DL Neil <PythonList at DancesWithMice.info> writes:

> On 11/25/2023 3:31 AM, Loris Bennett via Python-list 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?
>
>
> What does "the dict does not always have the same keys" mean?
>
> a) there are two (or...) keys, but some records don't include both;
>
> b) there may be keys other than 'foo' and 'bar' which not-known in-advance;
>
> c) something else.

Sorry for being unclear.  There is either 'foo' or 'bar' or both, plus
some other keys which are always present.

> As mentioned, dict.get() solves one of these.
>
> Otherwise, there are dict methods which collect/reveal all the keys,
> all the values, or both - dict.keys(), .values(), .items(), resp.

That is a also a good point.  I had forgotten about dict.keys() and
dict.values(), and hadn't been aware of dict.items().

Cheers,

Loris

-- 
This signature is currently under constuction.


More information about the Python-list mailing list