首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMESPath:条件字符串替换

JMESPath:条件字符串替换
EN

Stack Overflow用户
提问于 2021-07-27 02:03:02
回答 1查看 656关注 0票数 1

我正在与一个具有简单JSON对象有效负载的web钩子集成。我希望使用JMESPath表达式将提供的JSON对象有效负载中的某些值映射到数据模式中的有效值。

因此,例如,如果提交的数据是{"contact": "Text message"}{"contact": "Phone call"},我希望退出JMESPath表达式"phone",如果"contact"不是这两个值之一,我希望从JMESPath表达式"email"中退出。

对于如何在提供对象的顶层进行这样的条件字符串替换,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-06 21:40:53

理论上,您可以构建JMESPath表达式,如果文本是您所期望的,那么它将返回true;对于其他情况,可以构建false

下面是一个使用JMESPath函数和OR表达式的示例:[contact.contains(@,'Text message')||contact.contains(@,'Phone call')]

为了分解事情,让我们看看它在Python控制台中是如何工作的:

代码语言:javascript
复制
>>> text=[{"contact": "other"}]
>>> text
[{'contact': 'other'}]
>>> jmespath.search("[*][contact.contains(@,'Text message')||contact.contains(@,'Phone call')]", text)
[[False]]
>>> text=[{"contact": "Text message"}]
>>> text
[{'contact': 'Text message'}]
>>> jmespath.search("[*][contact.contains(@,'Text message')||contact.contains(@,'Phone call')]", text)
[[True]]
>>> text=[{"contact": "Phone call"}]
>>> text
[{'contact': 'Phone call'}]
>>> jmespath.search("[*][contact.contains(@,'Text message')||contact.contains(@,'Phone call')]", text)
[[True]]

我希望这对你有一点帮助:)

如果您想通过示例和推荐工具了解更多关于JMESPath的信息,请查看这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68538114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档