我正在将一些代码从 .Net 移植到 python。
在某一时刻,我们需要将任意复杂的 json 从一种格式转换为另一种格式。
例如:
{"Query":
{
"Boolean": {
"Operator": "And",
"Parameters": [
{"Equal": {"Name": "Bob"}},
{"Boolean": ...}
]
}
}
}
到...
{"Query":
{
"Left": {"Name":"Bob"},
"Right": {...},
"Operator": "And"
}
}
我们使用 Json.Net 的优秀Newtonsoft.Json.JsonConverter
来连接到序列化/反序列化过程。我们有 2 JsonConverter
s 从相同的对象转换到/从这些格式中的每一种。
Public Overrides Function CanConvert(objectType As Type) As Boolean
Return GetType(QueryDefinition).IsAssignableFrom(objectType)
End Function
这意味着我们可以手动挑选出我们想要处理的位,并允许库存转换器处理我们不需要特别处理的所有属性/值。
Python中是否有任何等效的机制/框架?还是我必须手动递归地解析每个属性?