为什么无法使用JSON序列化实例?

时间:2014-04-17 04:27:45

标签: python json serialization deserialization

由于我在过去几个小时内试图解决“Not JSON serializable”问题,我对序列化和反序列化实例时的困难部分非常感兴趣。

为什么无法使用JSON序列化类实例?

序列化:

  1. 注意类名(为了重建对象)
  2. 请注意包装时的变量值。
  3. 将其转换为字符串。
  4. 可选择压缩它(如msgpack所做)
  5. 要反序列化:

    1. 创建新实例
    2. 将已知值分配给适当的变量
    3. 返回对象。
    4. 有什么困难?什么是复杂数据类型?

1 个答案:

答案 0 :(得分:0)

" hard"部分主要是序列化的第3步,将包含的值转换为字符串(稍后在反序列化期间返回)

对于简单类型,如数字,字符串,布尔值,它非常简单,但对于复杂类型,如连接到远程服务器的套接字或打开的文件描述符,它不会很好地工作。

解决方案通常是从要序列化的类型中移动复杂类型并保持序列化类型非常干净,或以某种方式标记或以其他方式告诉序列化器确切地应该序列化哪些属性,哪些不应该。