Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自定义Json(反)序列化?_Python_Json - Fatal编程技术网

Python 自定义Json(反)序列化?

Python 自定义Json(反)序列化?,python,json,Python,Json,我正在将一些代码从.Net移植到python 有时,我们需要将任意复杂的json从一种格式转换为另一种格式 例如: 到 我们使用Json.Net优秀的Newtonsoft.Json.JsonConverter来连接序列化/反序列化过程。我们有两个JsonConverters,它们从相同的对象转换到这些格式 Public Overrides Function CanConvert(objectType As Type) As Boolean Return GetType(QueryDefi

我正在将一些代码从.Net移植到python

有时,我们需要将任意复杂的json从一种格式转换为另一种格式

例如:

我们使用Json.Net优秀的
Newtonsoft.Json.JsonConverter
来连接序列化/反序列化过程。我们有两个
JsonConverter
s,它们从相同的对象转换到这些格式

Public Overrides Function CanConvert(objectType As Type) As Boolean
    Return GetType(QueryDefinition).IsAssignableFrom(objectType)
End Function
这意味着我们可以选择我们想要手动处理的位,并允许股票转换器执行我们不需要特别处理的所有属性/值


Python中是否有任何等效的机制/框架?还是我必须手动递归地解析每个属性?

您可以对默认的JSONEncoder进行子类化

发件人:

要使用自定义JSONECODER子类(例如,重写default()方法以序列化其他类型的子类),请使用cls kwarg指定它;否则将使用JSONECODER


用法示例:

谢谢。你有一个例子在使用吗。。。太快了,谢谢。超时时间到了我就接受
{"Query": 
    {
        "Left": {"Name":"Bob"},
        "Right": {...},
        "Operator": "And"
    }
}
Public Overrides Function CanConvert(objectType As Type) As Boolean
    Return GetType(QueryDefinition).IsAssignableFrom(objectType)
End Function