python 内部类 如何序列化
class wordnet():class word():
def __init__(self) -> None:
self.word = List
self.offset = int
self.pos = str
def __init__(self) -> None:
self.word_set = self.word()
self.hyper = self.word()
self.hypon = self.word()
self.partOf = self.word()
def output(self):
with open('data.json', 'a', encoding='utf-8') as d:
print(self.__dict__)
jsonstr = json.dumps(self.__dict__)
d.write(jsonstr + '\n')
我想用 self.__dict__ 序列化 wordnet 的实例,但是内部类 word 无法被序列化,输出 {'word_set': <__main__.wordnet.word object at 0x000001C3B3B09B38>, 'hyper': <__main__.wordnet.word object at 0x000001C3AFDAD7F0>, 'hypon': <__main__.wordnet.word object at 0x000001C3B4946080>, 'partOf': <__main__.wordnet.word object at 0x000001C3B49461D0>}
应该怎么解决?
json.dump {:5_107:} 2个方法
1 使用框架 如fastapi只要你的对象实现了keys方法和__getitem__方法 它会帮你序列化
2 使用json.dumps 它有个cls参数需要你定义一个default方法 具体百度 传进去之后就可以序列化指定的类
页:
[1]