我有一个词典列表:
services:
some_service:
service_name: service1
users:
- user1
- user2
another_service:
service_name: service2
users:
- user3
- user4
and_another_one:
service_name: service3
users:
- user5
- user6
Python语法:
services = [{'service_name': 'service1', 'users': ["user1", "user2"]}, {'service_name': 'service2', 'users': ["user3", "user4"]}, {'service_name': 'service3', 'users': ["user5", "user6"]}]
我想要实现的是:
user1: service1, service2, service3
user2: service1, service2, service3
user3: service1, service2, service3
user4: service1, service2, service3
user5: service1, service2, service3
user6: service1, service2, service3
我很难完成这项工作,因此我们将不胜感激。我已经尝试过这里找到的一些解决方案,尽管没有成功。预先谢谢你!
答案 0 :(得分:2)
以下任务
- set_fact:
my_dict: "{{ dict(my_users|product([my_srvcs])) }}"
vars:
my_users: "{{ services|json_query('*.users')|flatten|unique|sort }}"
my_srvcs: "{{ services|json_query('*.service_name')|unique|sort }}"
- debug:
var: my_dict
给予
my_dict:
user1:
- service1
- service2
- service3
user2:
- service1
- service2
- service3
user3:
- service1
- service2
- service3
user4:
- service1
- service2
- service3
user5:
- service1
- service2
- service3
user6:
- service1
- service2
- service3