JMESPath嵌套或状态

2024-04-19 03:11:06 发布

您现在位置:Python中文网/ 问答频道 /正文

{在Python中使用^/Im}高效解析大字典。在

我有一个字典列表,对于每一个字典,我希望获得某个值或返回null并将结果放入一个列表中。i、 我从每个字典中选择一个字段,但是在字段不存在的地方包含一个空值。在

例如,我的输入是:

[
    {
        'foo': {'bar': 'yes1'}
    },
    {
        'foo': {'bar': 'yes2'}
    },
    {
        'foo1': {'bar': 'no'}
    }
]

我想要的结果是:

^{pr2}$

所以对于列表中的每个字典,我想要路径foo.bar,或者如果路径不存在,我想返回None。我想要的伪JMESPath表达式是:

[*]( foo.bar||`null` )

即选择全部列表,然后尝试路径美食酒吧或者返回文本null。但是括号在语法上是不正确的。如何在括号中封装OR表达式?我得到的最好的JMESPath表达式是:

[*][foo.bar||``][]

前两个项[*][foo.bar||``]将每个元素放入嵌套在列表[['yes1'], ['yes2'], ['']]中的列表中,然后[]将返回的列表展平。但是,这很混乱,并且阻止我返回null,所以我返回一个空字符串。在

有人有什么想法吗?我是否在句法上遗漏了什么?在

提前谢谢。在


Tags: 路径列表字典foo表达式地方barnull