DL Neil <pythonl...@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. -- https://mail.python.org/mailman/listinfo/python-list