gpt4 book ai didi

python - 在嵌套字典中序列化对象的最简单方法

转载 作者:太空狗 更新时间:2023-10-30 02:44:03 37 4
gpt4 key购买 nike

我想序列化以下字典中具有键“manager_objects”的所有对象。最简单的方法是什么?

department {
id: 1,
name: 'ARC',
manager_object: <Object>
sub_department: {
id: 5,
name: 'ABC'
manager_object: <Object>
sub_department: {
id: 7,
name: 'TRW',
manager_object: <Object>
sub_department: {
id: 9,
name: 'MYT',
manager_object: <Object>
sub_deparment: {
id: 12,
name: 'NMY'
manager_object: <Object>
sub_department: {}
}

}
}

}

最佳答案

您可以编写自己的 JsonEncoder(或使用@PaulDapolito 描述的方法)。但是,只有当您知 Prop 有键 manager_object 的项的类型时,这两种方法才有效。来自文档:要使用自定义 JSONEncoder 子类(例如,覆盖 default() 方法以序列化其他类型的子类),请使用 cls kwarg 指定它;否则使用 JSONEncoder。

# Example of custom encoder
class CustomJsonEncoder(json.JSONEncoder):
def default(self, o):
# Here you can serialize your object depending of its type
# or you can define a method in your class which serializes the object
if isinstance(o, (Employee, Autocar)):
return o.__dict__ # Or another method to serialize it
else:
return json.JSONEncoder.encode(self, o)

# Usage
json.dumps(items, cls=CustomJsonEncoder)

关于python - 在嵌套字典中序列化对象的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085153/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com