关于序列化的问题,请教老师
来源:7-7 从json序列化看代码解释权反转

老卢123123
2018-07-16
import json class A: def __init__(self): self.a = 'A_a' self.b = 'A_b' class B: def __init__(self): self.a = A self.b = 'B_b' class C: def __init__(self): self.a = A self.b = B self.c = 'C_c' x = A() y = B() z = C() print(x.__dict__) print(y.__dict__) print(z.__dict__) print(json.dumps(z, default=lambda o:o.__dict__))
结果分别是:
{'a': 'A_a', 'b': 'A_b'} {'a': <class '__main__.A'>, 'b': 'B_b'} {'a': <class '__main__.A'>, 'b': <class '__main__.B'>, 'c': 'C_c'}
最后的序列化报错:
AttributeError: 'mappingproxy' object has no attribute '__dict__'
写回答
2回答
-
宇泰
2021-09-07
class A: def __init__(self): self.a = 'A_a' self.b = 'A_b' class B: def __init__(self): self.a = A() self.b = 'B_b' class C: def __init__(self): self.a = A() self.b = B() self.c = 'C_c' x = A() y = B() z = C() print(x.__dict__) print(y.__dict__) print(z.__dict__) print(json.dumps(z, default=lambda o: o.__dict__)) {'a': 'A_a', 'b': 'A_b'}{'a': <__main__.A object at 0x00000162E568D780>, 'b': 'B_b'}{'a': <__main__.A object at 0x00000162E568DB00>, 'b': <__main__.B object at 0x00000162E56E3160>, 'c': 'C_c'}{"a": {"a": "A_a", "b": "A_b"}, "b": {"a": {"a": "A_a", "b": "A_b"}, "b": "B_b"}, "c": "C_c"}
00 -
7七月
2018-07-18
报错的信息呢?
00
相似问题