我想使用从字典重新创建我的对象,cattr
但看起来这不适用于设置为的嵌套字段None
。
这是一个解释问题的代码示例:
import attr
import cattr
@attr.s(auto_attribs=True)
class B(object):
b :int = 0
@attr.s(auto_attribs=True)
class A(object):
a :int = 0
b: B = None
x = A(1)
x_dict = attr.asdict(x)
现在,如果 Iry 使用以下方法构造我的对象:
cattr.structure(x_dict,A)
我收到以下错误:
if 'b' in o:
TypeError: argument of type 'NoneType' is not iterable
一种解决方法是在调用结构之前从字典中删除 None 字段:
del x_dict["b"]
cattr.structure(x_dict,A)
我需要这样做吗?或者有更简单的解决方案
任何帮助深表感谢。