我需要从此结果中获取UserId:
ok: [localhost] => {"ansible_facts": {"Usernamelis": "", "_raw_params": "\"{u'Users': [{u'UserName': u'reo', u'PasswordLastUsed': u'2016-01-08T14:00:34Z', u'CreateDate': u'2016-01-06T14:34:37Z', u'UserId': u'AIDABBBBBBBZGGASHKPKKYRI4', u'Path': u'/', u'Arn': u'arn:aws:iam::590456900000:user/reo'},{u'UserName': u'rake', u'PasswordLastUsed': u'2016-01-08T14:00:34Z', u'CreateDate': u'2016-01-06T14:34:37Z', u'UserId': u'GIDAJCAZGFFFFFFFFKYRI4', u'Path': u'/', u'Arn': u'arn:aws:iam::590456900000:user/rake'}]}}\""}
这是我的Ansible代码:
register: users_result
- set_fact: Usernamelis= "{{ users_result.stdout | from_json }}"
register: users_result0
- name: simple
debug:
msg: "{{ item }}"
with_items: "{{ users_result0.ansible_facts._raw_params | map(attribute='UserId') | list }}"
由于
答案 0 :(得分:1)
你的_raw_params
中有一个带有序列化python dict的字符串。
我不知道在Ansible中将它转换回对象的简单方法
如果您找到用JSON替换它的方法,可以使用users_result0.ansible_facts._raw_params['Users'] | map(attribute='UserId') | list
作为循环。