我想从Ansible的字典中删除单个键。如何从Ansible字典中删除单个密钥?
例如,我想这样的:
- debug: var=dict2
vars:
dict:
a: 1
b: 2
c: 3
dict2: "{{ dict | filter_to_remove_key('a') }}"
要打印此:
ok: [localhost] => {
"dict2": {
"b": 2,
"c": 3
}
}
请注意,该词典是从JSON文件加载,我其发布到Grafana REST API。我想允许在文件中保存一个'id'密钥并在开机前删除密钥。
这是更接近实际使用我对去除:
- name: Install Dashboards
uri:
url: "{{ grafana_api_url }}/dashboards/db"
method: POST
headers:
Authorization: Bearer {{ grafana_api_token }}
body:
overwrite: true
dashboard:
"{{ lookup('file', item) | from_json | removekey('id') }}"
body_format: json with_fileglob:
- "dashboards/*.json"
- "../../../dashboards/*.json"
你为什么要创建一个新的字典?为什么不在打印时使用原始字典并跳过所需的键? – Shasha99
我想你只能使用默认过滤器将关键字设置为null:'dict |结合({'a':无})',如果它适合你的需求。否则,您需要编写自定义过滤器插件。 –
@ Shasha99第二本字典只是为了帮助展示我需要的东西。我实际上并不需要打印字典;我需要将它张贴到grafana。所以我需要一把钥匙才能离开。我会尽量在我的问题上澄清一点。 –