serialize.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:nirum-python 作者: spoqa 项目源码 文件源码
def serialize_meta(data):
    if hasattr(data, '__nirum_serialize__'):
        d = data.__nirum_serialize__()
    elif isinstance(data, (string_types, bool, int, float)):
        # FIXME: str in py2 represents binary string as well as text string.
        # It should be refactored so that the function explicitly takes
        # an expected type as like deserialize_meta() does.
        d = data
    elif (isinstance(data, datetime.datetime) or
            isinstance(data, datetime.date)):
        d = data.isoformat()
    elif isinstance(data, decimal.Decimal) or isinstance(data, uuid.UUID):
        d = str(data)
    elif (isinstance(data, collections.Set) or
          isinstance(data, collections.Sequence)):
        d = [serialize_meta(e) for e in data]
    elif isinstance(data, collections.Mapping):
        d = [
            {'key': serialize_meta(k), 'value': serialize_meta(v)}
            for k, v in data.items()
        ]
    else:
        d = data
    return d
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号