我有一个这样的数据对象:
data = {
'props': {
'items': [
{'name': 'a', 'content': 'plain'},
{'name': 'b', 'content': {'id': 'x'}},
{'name': 'c', 'content': {'id': 'y'}},
]
}
}
使用glom,我想得到等于的项目x的值。idnameb
到目前为止,我有这个:
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')
但我认为应该有一种方法可以在一次通话中做到这一点。关于如何实现这一目标的任何想法?