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 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.

Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

SON[_Key, _Value]

clear() None.  Remove all items from D.#
Return type:

None

copy() a shallow copy of D#
Return type:

SON[_Key, _Value]

get(key, default=None)#

Return the value for key if key is in the dictionary, else default.

Parameters:
  • key (_Key) –

  • default (_Value | _T | None) –

Return type:

_Value | _T | None

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

If the key is not found, return the default if given; otherwise, raise a KeyError.

Parameters:
  • key (_Key) –

  • args (_Value | _T) –

Return type:

_Value | _T

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.

Return type:

Tuple[_Key, _Value]

setdefault(key, default)#

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

Parameters:
  • key (_Key) –

  • default (_Value) –

Return type:

_Value

to_dict()#

Convert a SON document to a normal Python dictionary instance.

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

Return type:

dict[_Key, _Value]

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]

Parameters:
  • other (Any | None) –

  • kwargs (_Value) –

Return type:

None

values() an object providing a view on D's values#
Return type:

list[_Value]