son – Tools for working with SON, an ordered mapping

    Regular dictionaries can be used instead of SON objects, but not when the order of keys is important. A SON object can be used just like a normal Python dictionary.

    class bson.son.SON(\args, **kwargs*)

    SON data.

    A subclass of dict that maintains ordering of keys and provides a few extra niceties for dealing with SON. SON provides an API similar to collections.OrderedDict from Python 2.7+.

    • clear() → None. Remove all items from D.

    • copy() → a shallow copy of D

    • get(key, default=None)

    • keys() → a set-like object providing a view on D’s keys

    • pop(k[, d]) → v, remove specified key and return the corresponding value.

      If key is not found, d is returned if given, otherwise KeyError is raised

    • popitem()

      Remove and return a (key, value) pair as a 2-tuple.

      Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

    • to_dict()

      Convert a SON document to a normal Python dictionary instance.

      This is trickier than just dict(…) because it needs to be recursive.

    • update([E, ]\*F*) → None. Update D from dict/iterable E and F.

      If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]