我有以下词典列表:
"errorlist": [
{
"error": "Not found",
"path": "/tmp/working/directory1/file1"
},
{
"error": "Not found",
"path": "/tmp/working/directory2/file1"
},
{
"error": "Not found",
"path": "/tmp/working/directory1/file2"
},
{
"error": "Not found",
"path": "/tmp/working/directory2/file2"
}
]
我想删除路径值中的“/tmp/working/”部分,即将绝对路径转换为相对路径。
我在网上搜索时也遇到过类似的问题,但没有找到解决方案。应该很简单,但我就是想不明白。
预期结果应该是具有更新值的原始列表或具有相同结构的新列表。
Ansible 并不是一个出色的数据处理工具。对于您想要执行的操作,最简单的解决方案可能是用 Python 编写的自定义过滤器。将以下内容放入
filter_plugins/filters.py
(filter_plugins
目录与您的剧本位于同一目录中):现在你可以编写如下剧本:
并得到以下输出:
这里介绍的过滤器比它需要的稍微复杂一些,因为它支持对任意属性的查找/替换。
过滤基本名称并创建字典列表
给出
压缩列表并合并项目
给出
根据您的需要安装管道。
给出
这将导致