You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dpath库处理含方括号的字典键的问题

解决dpath库中含方括号的字典键匹配问题

dpath默认把[和]当作通配符解析,你用单个反斜杠转义无效是因为Python字符串会先处理反斜杠,实际传递给dpath的路径里并没有保留转义符。以下三种方法可以解决这个问题:

  • 双反斜杠手动转义:在Python字符串里,用双反斜杠表示字面量的反斜杠,这样dpath就能识别转义后的方括号:
import dpath

d = {'Position': {'Position x [mm]': 3}}
result = dpath.search(d, 'Position/Position x \\[mm\\]/*')
print(result)  # 输出: {'Position x [mm]': 3}
  • 使用原始字符串:在路径字符串前加r,让Python不解析反斜杠,直接传递给dpath:
import dpath

d = {'Position': {'Position x [mm]': 3}}
result = dpath.search(d, r'Position/Position x \[mm\]/*')
print(result)  # 输出: {'Position x [mm]': 3}
  • 用dpath内置工具自动转义:使用dpath.util.escape函数自动处理特殊字符,避免手动转义出错:
import dpath
from dpath import util

d = {'Position': {'Position x [mm]': 3}}
escaped_key = util.escape('Position x [mm]')
path = f'Position/{escaped_key}/*'
result = dpath.search(d, path)
print(result)  # 输出: {'Position x [mm]': 3}

注意:你的预期输出描述有误,dpath.search按给定路径Position/Position x [mm]/*查询,返回的是该键下的内容,也就是{'Position x [mm]': 3},而非外层的{'Position': {'Position x [mm]': 3}}。

内容的提问来源于stack exchange,提问作者gioarma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:16