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