【发布时间】:2021-12-23 14:10:38
【问题描述】:
我无法在 python 3 中序列化自定义对象。 下面是解释和代码
packages= []
data = {
"simplefield": "value1",
"complexfield": packages,
}
其中 packages 是 custom object Library 的列表。
Library object 是一个如下的类(我也对json.JSONEncoder 进行了子分类,但它没有帮助)
class Library(json.JSONEncoder):
def __init__(self, name):
print("calling Library constructor ")
self.name = name
def default(self, object):
print("calling default method ")
if isinstance(object, Library):
return {
"name": object.name
}
else:
raiseExceptions("Object is not instance of Library")
现在我正在调用json.dumps(data),但它正在抛出异常。
TypeError: Object of type `Library` is not JSON serializable
好像"calling default method"没有打印的意思,Library.default方法没有被调用
有人可以帮忙吗?
我也提到了Serializing class instance to JSON,但它没有多大帮助
【问题讨论】:
-
你的输入和输出是什么?
-
它应该序列化库对象。它的实现在默认方法中给出
标签: json python-3.x