使用az repos policy list查询时遇JMESPath contains()函数null类型错误
解决az repos policy list的JMESPath查询报错问题
报错的核心原因是返回的部分政策条目里,settings.displayName字段是null值,而JMESPath的contains()函数只接受数组或字符串类型,碰到null就直接报错了。
给你两个可行的解决办法:
- 先过滤掉
settings.displayName不为null的条目,再执行匹配:az repos policy list --query "[?settings.displayName != null && type.displayName=='Build' && contains(settings.displayName, 'Test')]" - 用
not_null()函数把null值转换成空字符串,避免函数报错:az repos policy list --query "[?type.displayName=='Build' && contains(not_null(settings.displayName, ''), 'Test')]"
之所以单独查字段能看到数据,是因为你只看到了有值的条目,实际上返回结果里混着该字段为null的条目,之前的查询没处理这种情况,才触发了错误。
内容的提问来源于stack exchange,提问作者confused-nerd
相关产品推荐
相关产品推荐

