请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于序列化的问题,请教老师

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__'

正在回答 回答被采纳积分+3

2回答

宇泰 2021-09-07 00:10:45


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"}


0 回复 有任何疑惑可以回复我~
7七月 2018-07-18 00:06:58

报错的信息呢?

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号