我有一个这样的字典
{"product_1": [
"account1",
"account2"
],
"product_2": [
"account1",
"account2"
],
...
"product_10": [
"account1",
"account2"
]}
Run Code Online (Sandbox Code Playgroud)
如何根据键过滤这个字典?
有专门的 jinja2 过滤器:selectattr和rejectattr。
但它们适用于字典列表,而不是字典本身。您将必须使用dict2items并items2dict解决这个问题。
以下是一些用法示例:
# Values are dicts, select only items with specific attribute defined.
result: "{{ my_dict | dict2items | selectattr('value.my_attribute', 'defined')
| list | items2dict }}"
# Values are lists (as in your example), check for an existing item value.
result: "{{ my_dict | dict2items | selectattr('value', 'contains', 'some item')
| list | items2dict }}"
# Values are dict. Reject elements when attributes has a specific value.
result: "{{ my_dict | dict2items | rejectattr('value.my_attribute', '==', 'Does not apply')
| list | items2dict }}"
Run Code Online (Sandbox Code Playgroud)
检查上述文档和其余过滤器,以全面了解所有可能性。
| 归档时间: |
|
| 查看次数: |
5255 次 |
| 最近记录: |