Added example of using default/object_hook into README

This commit is contained in:
Alexei Romanoff 2012-10-12 13:32:29 +03:00
parent cf89f18be7
commit 541d22d004

View file

@ -61,6 +61,36 @@ stream.
for unpacked in unpacker:
print unpacked
packing/unpacking of custom data type
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Also possible to pack/unpack user's data types. Here is an example for
``datetime.datetime``.
::
import datetime
import msgpack
useful_dict = {
"id": 1,
"created": datetime.datetime.now(),
}
def decode_datetime(obj):
if b'__datetime__' in obj:
obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")
return obj
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")}
return obj
packed_dict = msgpack.packb(useful_dict, default=encode_datetime)
this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime)
INSTALL
---------