community.general.remove_keys 过滤器 – 从列表中的字典中删除特定键

注意

此过滤器插件是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.remove_keys

community.general 9.1.0 中的新增功能

概要

  • 此过滤器仅从提供的字典列表中删除指定的键。

输入

这描述了过滤器的输入,即 | community.general.remove_keys 之前的值。

参数

注释

输入

列表 / 元素=字典 / 必需

字典列表。

顶级键必须是字符串。

关键字参数

这描述了过滤器的关键字参数。这些是以下示例中 key1=value1key2=value2 等值:input | community.general.remove_keys(key1=value1, key2=value2, ...)

参数

注释

matching_parameter

字符串

指定目标键的匹配选项。

选择

  • "ends_with":匹配以 target 项之一结尾的键。

  • "equal" (默认):匹配与 target 项之一完全相同的键。

  • "regex":匹配与 target 中提供的正则表达式匹配的键。

    在这种情况下,target 必须是正则表达式字符串或包含单个正则表达式字符串的列表。

  • "starts_with":匹配以 target 项之一开头的键。

target

任意 / 必需

要删除的单个键或键模式,或者要删除的键或键模式的列表。

如果 matching_parameter=regex,则必须提供一个模式。

示例

l:
  - {k0_x0: A0, k1_x1: B0, k2_x2: [C0], k3_x3: foo}
  - {k0_x0: A1, k1_x1: B1, k2_x2: [C1], k3_x3: bar}

# 1) By default match keys that equal any of the items in the target.
t: [k0_x0, k1_x1]
r: "{{ l | community.general.remove_keys(target=t) }}"

# 2) Match keys that start with any of the items in the target.
t: [k0, k1]
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='starts_with') }}"

# 3) Match keys that end with any of the items in target.
t: [x0, x1]
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='ends_with') }}"

# 4) Match keys by the regex.
t: ['^.*[01]_x.*$']
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='regex') }}"

# 5) Match keys by the regex.
t: '^.*[01]_x.*$'
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='regex') }}"

# The results of above examples 1-5 are all the same.
r:
  - {k2_x2: [C0], k3_x3: foo}
  - {k2_x2: [C1], k3_x3: bar}

# 6) By default match keys that equal the target.
t: k0_x0
r: "{{ l | community.general.remove_keys(target=t) }}"

# 7) Match keys that start with the target.
t: k0
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='starts_with') }}"

# 8) Match keys that end with the target.
t: x0
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='ends_with') }}"

# 9) Match keys by the regex.
t: '^.*0_x.*$'
r: "{{ l | community.general.remove_keys(target=t, matching_parameter='regex') }}"

# The results of above examples 6-9 are all the same.
r:
  - {k1_x1: B0, k2_x2: [C0], k3_x3: foo}
  - {k1_x1: B1, k2_x2: [C1], k3_x3: bar}

返回值

描述

返回值

列表 / 元素=字典

删除了所选键的字典列表。

已返回: 成功

作者

  • Vladimir Botka (@vbotka)

  • Felix Fontein (@felixfontein)

提示

每个条目类型的配置条目都有一个从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。