在Python模块attrs
stated的documentation存在将属性级转换为字典表示的方法:如何实现的“attr.asdict(为MyObject)”反向使用Python模块“ATTRS”
实施例:
>>> @attr.s
... class Coordinates(object):
... x = attr.ib()
... y = attr.ib()
...
>>> attr.asdict(Coordinates(x=1, y=2))
{'x': 1, 'y': 2}
我怎样才能achive的oposite:得到Coordinates
从它的有效字典代表性的实例,而样板,并与attrs
模块的喜悦?
据我所知,你的解决方案需要一个额外的状态,将携带的类型名称?另外,你不清楚你说的是什么类:“_I在我的classes_上做了一个方法”。无论哪种方式,我只收到我不能修改的python字典,但可以期待具体的键将它建模为简单的DTO以获得更多舒适的使用。 – misanthrope
另外,@ patrick-shechetin可以为你的JSON字典动态创建** attrs ** DTOs提供一个通用方法。更重要的是,如果你有一个JSON模式,你不需要在有效载荷本身中携带一个类型名称。只要您可以确保您的字典根据具体类型的模式进行验证。您可以在我的其他[Q/A](https://stackoverflow.com/q/45770755/7598113)中找到关于_JSL_和_attrs_的更多信息。 – misanthrope