son – Tools for working with SON, an ordered mapping

Tools for creating and manipulating SON, the Serialized Ocument Notation.

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

  • class bson.son.SON(data=None, **kwargs)
  • SON data.

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

  • clear() → None. Remove all items from D.
  • copy() → a shallow copy of D
  • get(k[, d]) → D[k] if k in D, else d. d defaults to None.
  • haskey(_k) → True if D has a key k, else False
  • items() → list of D's (key, value) pairs, as 2-tuples
  • iteritems() → an iterator over the (key, value) items of D
  • iterkeys() → an iterator over the keys of D
  • itervalues() → an iterator over the values of D
  • keys() → list of 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() → (k, v), remove and return some (key, value) pair as a

  • 2-tuple; but raise KeyError if D is empty.

  • setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D

  • to_dict()
  • Convert a SON document to a normal Python dictionary instance.

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

  • update([E, ]**F) → None. Update D from dict/iterable E and F.
  • If E present and has a .keys() method, does: for k in E: D[k] = E[k]If E present and lacks .keys() method, does: for (k, v) in E: D[k] = vIn either case, this is followed by: for k in F: D[k] = F[k]

  • values() → list of D's values