如何使用JSONPath获取键名包含点号的对象值
解决JSONPath获取含点号键值的问题
当键名包含点号时,常规JSONPath写法会把点号解析为层级分隔符,导致匹配失败。正确的写法是用单引号包裹键名,并结合方括号语法来精确匹配:
import jsonpath data = {'layers': {'urlencoded-form.key': ["1234"]}} # 正确的JSONPath表达式 result = jsonpath.jsonpath(data, '$..[\'urlencoded-form.key\']') print(result) # 输出: ['1234'] assert result == ["1234"]
原理说明:
- 用
['键名']的语法可以明确指定要匹配的键,避免点号被误解析为层级分隔 - 也可以用双引号包裹整个表达式字符串,内部直接用单引号,省去转义:
jsonpath.jsonpath(data, "$..['urlencoded-form.key']")
内容的提问来源于stack exchange,提问作者wgf4242
相关产品推荐
相关产品推荐

