我有一个这样的数据对象:
data = {
'props': {
'items': [
{'name': 'a', 'content': 'plain'},
{'name': 'b', 'content': {'id': 'x'}},
{'name': 'c', 'content': {'id': 'y'}},
]
}
}
使用glom
,我想得到等于的项目x
的值。id
name
b
到目前为止,我有这个:
from glom import glom
from glom import SKIP
glom(data, ('props.items', [lambda i: i if i['name']=='b' else SKIP]))
返回:
[{'name': 'b', 'content': {'id': 'x'}}]
我不知道使用什么规范(用glom
说法)来提取返回列表中的唯一元素,然后是id
.
我可以调用 glom 两次:
glom(glom(data, ('props.items', [lambda i: i if i['name']=='b' else SKIP]))[0], 'content.id')
但我认为应该有一种方法可以在一次通话中做到这一点。关于如何实现这一目标的任何想法?