在使用dpath库时,我在使用包含方括号的键的词典时遇到了问题.从文件中,我看到方括号被认为是常规表达式的元素.然而,在我的例子中,这导致了问题,因为我只希望它们是"正常"的方括号.

我试图用退格符\[来转义方括号,但结果是一样的.

Code example

import dpath

d = {'Position': {'Position x [mm]': 3}}
dpath.search(d, 'Position/Position x [mm]/*')

输出:{},而不是预期的{'Position': {'Position x [mm]': 3}}

也许这个问题已经有了解决方案,但我在文档中没有找到.

推荐答案

看起来好像是dpath uses fnmatch library under the hood(fnmatch模块支持Unixshell 样式的通配符,这与regular expressions不同).作为per the fnmatch documentation

对于文字匹配,请将元字符括在方括号中.为 例如,‘[?]’与字符‘?’匹配

因此,您必须将[替换为[[],将]替换为[]]才能获得预期的匹配结果.

>>> import dpath
>>> 
>>> d = {'Position': {'Position x [mm]': 3}}
>>> dpath.search(d, 'Position/Position x [[]mm[]]')
{'Position': {'Position x [mm]': 3}}

Python相关问答推荐

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

pandas DataFrame GroupBy.diff函数的意外输出

如何将ctyles.POINTER(ctyles.c_float)转换为int?

django禁止直接分配到多对多集合的前端.使用user.set()

如何在python polars中停止otherate(),当使用when()表达式时?

对象的`__call__`方法的setattr在Python中不起作用'

在vscode上使用Python虚拟环境时((env))

Asyncio:如何从子进程中读取stdout?

改进大型数据集的框架性能

不能使用Gekko方程'

寻找Regex模式返回与我当前函数类似的结果

在pandas/python中计数嵌套类别

重置PD帧中的值

jsonschema日期格式

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,

从列表中分离数据的最佳方式

与同步和异步客户端兼容的Python函数

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

如何通过特定导入在类中执行Python代码

使用Django标签显示信息