繁体   English   中英

jmespath:区分未找到的键和具有空值的键

[英]jmespath: Differentiate between a key not found and a key having a null value

我在python中使用jmespath模块搜索嵌套字典。

我遇到的问题是,如果字典中找不到键,我想引发一个异常。 但是,某些键具有“无”值,这是完全有效的。 在两种情况下,如果jmespath找到具有None值的键,或者找不到键,则返回None。

有什么办法可以区分两者吗? 据我所知,jmespath没有等同于“功能”。 谢谢!

此处对此问题进行了详细讨论-https: //github.com/jmespath/jmespath.py/issues/113

结果是使用contains检查密钥是否存在

因此,要检查嵌套字典中是否存在foo.bar ,可以将search与arg "contains(keys(foo), 'bar')"

>>> print (jmespath.search('foo.bar', {'foo': {'bar': None}}))
None
>>> jmespath.search("contains(keys(foo), 'bar')", {'foo': {'bar': None}})
True
>>> jmespath.search("contains(keys(foo), 'bar2')", {'foo': {'bar': None}})
False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM