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

在Python中使用jsonpath-ng的split扩展时如何返回多个属性?

如何在jsonpath-ng.ext中同时提取多个属性并对字段使用split扩展

正确写法示例

要同时提取多个属性并对name字段使用split扩展,需要将带扩展函数的表达式用括号包裹,让解析器正确识别语法结构:

from jsonpath_ng.ext import parse

event = {'name': 'team1 - team2', 'competitionId': 19790, 'sportId': 3}

# 修正后的JSONPath表达式
jsonpath_expression = parse("$.[sportId, competitionId, (name.`split(-, 0, -1)`)]")

# 提取结果
matches = jsonpath_expression.find(event)
result = [match.value for match in matches]
print(result)  # 输出: [3, 19790, 'team1 ']

错误原因

原表达式$.[sportId, dateTime, name.split(-, 0, -1)]报错,是因为jsonpath-ng.ext的解析器在处理多属性选择数组时,无法直接识别链式调用的扩展函数语法。用括号包裹name.split(...)``后,解析器能明确区分每个属性项的边界,正确解析带扩展函数的表达式。

可选写法(显式字段引用)

也可以通过显式的字段引用方式实现,效果一致:

jsonpath_expression = parse("$.[sportId, competitionId, $['name'].`split(-, 0, -1)`]")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:54:56