ObjectPath:“in”操作有问题

2024-06-16 10:40:38 发布

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

我正在为python学习ObjectPath,并发现了,例如,如何对属性进行精确匹配:

>>> import objectpath
>>>
>>> tree = objectpath.Tree({'doc': {'title': 'Purple is Best Color'}})
>>>
>>> tree.execute('$..*[@.title is "Purple is Best Color"]').next()
{'title': 'Purple is Best Color'}

这对我来说很有意义;我想从根($)开始,递归地(..)查找title==“紫色是最佳颜色”的所有(*)项(@)。而且很管用!在

但是我尝试了类似于in运算符的方法:

^{pr2}$

嗯?似乎是一个自然的方法来改变这种状况,但它并不完全正确。在

在手册中,我读到in检查表达式左侧的结果是否在数组、对象或字符串中,并且在objects中,键是否匹配。(也许这是我的问题,但不太清楚这意味着什么)。我认为我当前的@确实是一个字符串。。。?在

综上所述,我在这里还缺什么呢?在


Tags: 方法字符串inimporttreedoc属性title
2条回答

是个虫子。现在修好了。该修复可通过github(git clonehttps://github.com/adriank/ObjectPath.git)获得。在

有趣的是,显式地将Purple转换为字符串起作用:

$..*[str("Purple") in @.title]

ObjectPath问题跟踪程序中创建了问题:

相关问题 更多 >