{在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,所以我返回一个空字符串。在
有人有什么想法吗?我是否在句法上遗漏了什么?在
提前谢谢。在
自从JMESPATH 0.9以来,添加了^{} function 。因此,现在可以使用下面的表达式来获得所需的结果:
相关问题 更多 >
编程相关推荐