首页 > 解决方案 > 使用 Python 自定义 json 序列化/反序列化

问题描述

我正在尝试找出使用 python3 中的 json 模块为用户定义的类实现自定义序列化的最佳方法。似乎有三种方法可以做到这一点:

  1. json.dump(默认=custom_serializer_function)

    json.load(object_hook=custom_deserializer_function)

  2. 子类 json.JSONEncoder 并覆盖 default() 方法

    子类 json.JSONDecoder 并设置 object_hook

    2a) json.dump(cls=my_encoder_subclass), json.load(cls=my_decoder_subclass)

    2b) my_subclass.encode(obj), my_decoder_subclass.decode(s)

  3. json.JSONEncoder(default=custom_serializer_function).encode(obj)

    json.JSONDecoder(object_hook=cusom_deserializer_function).decode(s)

这三种方法之间有什么真正的区别吗?在什么情况下哪种食谱更可取?

标签: pythonjsonpython-3.x

解决方案


推荐阅读