Canonical conversion of dict of dicts to list of dicts
Jon Ribbens
jon+usenet at unequivocal.eu
Tue Mar 30 07:53:37 EDT 2021
On 2021-03-30, Loris Bennett <loris.bennett at fu-berlin.de> wrote:
> If I have dict of dicts, say
>
> dod = {
> "alice":
> {
> "lang": "python",
> "level": "expert"
> },
> "bob":
> {
> "lang": "perl",
> "level": "noob"
> }
> }
>
> is there a canonical, or more pythonic, way of converting the outer key
> to a value to get a list of dicts, e.g
>
> lod = [
> {
> "name": "alice",
> "lang": "python",
> "level": "expert"
> },
> {
> "name": "bob",
> "lang": "perl",
> "level": "noob"
> }
> ]
>
> than just
>
> lod = []
> for name in dod:
> d = dod[name]
> d["name"] = name
> lod.append(d)
>
> ?
There can't be a "canonical" way to perform the arbitrary data
conversion you want, because it's arbitrary. Personally I would
do this:
[dict(data, name=name) for name, data in dod.items()]
but it's of course arguable whether this is "more Pythonic" or
indeed "better".
More information about the Python-list
mailing list