in connectors/source.py [0:0]
def serialize(self, doc):
"""Reads each element from the document and serializes it with respect to its datatype.
Args:
doc (Dict): Dictionary to be serialized
Returns:
doc (Dict): Serialized version of dictionary
"""
def _serialize(value):
"""Serialize input value with respect to its datatype.
Args:
value (Any Datatype): Value to be serialized
Returns:
value (Any Datatype): Serialized version of input value.
"""
if isinstance(value, (list, tuple)):
value = [_serialize(item) for item in value]
elif isinstance(value, dict):
for key, svalue in value.items():
value[key] = _serialize(svalue)
elif isinstance(value, (datetime, date, time)):
value = value.isoformat()
elif isinstance(value, Decimal128):
value = value.to_decimal()
elif isinstance(value, (bytes, bytearray)):
value = value.decode(errors="ignore")
elif isinstance(value, Decimal):
value = float(value)
return value
for key, value in doc.items():
doc[key] = _serialize(value)
return doc