【发布时间】:2018-07-07 00:16:27
【问题描述】:
对于任意字典(最终包含嵌套集合和基本类型),使用 python-attrs 使其成为嵌套对象列表的最佳方法是什么?
一些限制:字典键始终是字符串(它们是有效的 Python 标识符),其值将仅包含本机集合类型、字符串、整数和浮点数。任何完全深度的嵌套字典都将始终具有相同的特征。在任何列表或元组中,所有项目都将是相同类型或无。而且很可能我的字典将始终是有序映射,因此应该在生成的顶级列表和每个嵌套映射中保留顺序。
例如与:
{'some_key': [
{'some_value': 12, 'foo': 'abc', 'bar': [1, 4, 8], 'baz': None}
{'some_value': 24, 'foo': 'xyz', 'bar': [12, 12], 'baz': 'this'}],
'other_key' : [1,2,3,4]
}
我想得到一个可以使用属性遍历的两个对象的列表:
some_key[0].some_value, some_key[0].baz
other_key[-1]
即结果将是“对象化”嵌套映射。我怎么能用 attrs 做到这一点?有attr.make_class() 的循环调用要走的路吗?
【问题讨论】:
标签: pytest python-attrs